当前位置: 首页 > news >正文

6Python的Pandas:数据读取与输出

Pandas是一个强大的Python数据分析库,提供了读取和输出数据的多种功能。以下是一些常见的数据读取与输出方法:

1. 读取CSV

读取数据

  1. 从CSV文件读取数据
import pandas as pd# 读取CSV文件
df = pd.read_csv('file_path.csv')
print(df.head())
  1. 从Excel文件读取数据
# 读取Excel文件
df = pd.read_excel('file_path.xlsx', sheet_name='Sheet1')
print(df.head())
  1. 从SQL数据库读取数据
import sqlite3# 连接到SQLite数据库
conn = sqlite3.connect('database.db')# 读取SQL查询结果
df = pd.read_sql_query("SELECT * FROM table_name", conn)
print(df.head())
  1. 从JSON文件读取数据
# 读取JSON文件
df = pd.read_json('file_path.json')
print(df.head())

输出数据

  1. 将数据写入CSV文件
# 写入CSV文件
df.to_csv('output_file.csv', index=False)
  1. 将数据写入Excel文件
# 写入Excel文件
df.to_excel('output_file.xlsx', index=False, sheet_name='Sheet1')
  1. 将数据写入SQL数据库
# 将DataFrame写入SQLite数据库
df.to_sql('table_name', conn, if_exists='replace', index=False)
  1. 将数据写入JSON文件
# 写入JSON文件
df.to_json('output_file.json', orient='records', lines=True)

示例操作

以下是一个从CSV文件读取数据并将其写入Excel文件的示例:

import pandas as pd# 读取CSV文件
df = pd.read_csv('input_file.csv')# 数据处理(例如:查看前五行数据)
print(df.head())# 写入Excel文件
df.to_excel('output_file.xlsx', index=False)

列数据处理

  1. 选择列
# 选择指定的列
df_selected = df[['column1', 'column2']]
print(df_selected.head())
  1. 新增列
# 新增一列,值为两列相加
df['new_column'] = df['column1'] + df['column2']
print(df.head())
  1. 删除列
# 删除指定的列
df = df.drop(columns=['column1'])
print(df.head())

真假值转换

  1. 将布尔值转换为0和1
# 将布尔值转换为0和1
df['boolean_column'] = df['boolean_column'].astype(int)
print(df.head())
  1. 将0和1转换为布尔值
# 将0和1转换为布尔值
df['int_column'] = df['int_column'].astype(bool)
print(df.head())

跳过指定行

  1. 跳过CSV文件的前几行
# 跳过前两行
df = pd.read_csv('file_path.csv', skiprows=2)
print(df.head())

读取指定行

  1. 读取CSV文件中的特定行
# 读取第5行到第10行(注意,行索引从0开始)
df = pd.read_csv('file_path.csv', skiprows=lambda x: x not in range(5, 11))
print(df)

空值替换

  1. 用指定值替换空值
# 用0替换所有空值
df = df.fillna(0)
print(df.head())
  1. 用列的平均值替换空值
# 用列的平均值替换空值
df['column1'] = df['column1'].fillna(df['column1'].mean())
print(df.head())

示例操作

以下是一个综合示例,展示了如何进行这些操作:

import pandas as pd# 读取CSV文件,跳过前两行
df = pd.read_csv('file_path.csv', skiprows=2)# 选择指定的列
df_selected = df[['column1', 'column2']]# 新增一列,值为两列相加
df['new_column'] = df['column1'] + df['column2']# 将布尔值转换为0和1
df['boolean_column'] = df['boolean_column'].astype(int)# 用0替换所有空值
df = df.fillna(0)print(df.head())

这些操作可以帮助你高效地处理和转换数据,根据具体需求进行调整和组合。

2.读取Excel

Pandas可以方便地读取Excel文件并进行数据处理。以下是一些常见的操作和示例:

读取整个Excel文件

import pandas as pd# 读取整个Excel文件中的默认工作表
df = pd.read_excel('file_path.xlsx')
print(df.head())

读取指定工作表

# 读取指定的工作表
df = pd.read_excel('file_path.xlsx', sheet_name='Sheet1')
print(df.head())

读取多个工作表

# 读取多个工作表,将结果存储在字典中
dfs = pd.read_excel('file_path.xlsx', sheet_name=['Sheet1', 'Sheet2'])# 打印Sheet1的前几行
print(dfs['Sheet1'].head())# 打印Sheet2的前几行
print(dfs['Sheet2'].head())

读取所有工作表

# 读取所有工作表,将结果存储在字典中
dfs = pd.read_excel('file_path.xlsx', sheet_name=None)# 打印每个工作表的前几行
for sheet_name, df in dfs.items():print(f"Sheet: {sheet_name}")print(df.head())

跳过指定行

# 跳过前两行
df = pd.read_excel('file_path.xlsx', sheet_name='Sheet1', skiprows=2)
print(df.head())

读取指定行和列

# 读取第5到10行,指定列
df = pd.read_excel('file_path.xlsx', sheet_name='Sheet1', skiprows=4, nrows=6, usecols='A:C')
print(df)

空值处理

# 用指定值替换空值
df = pd.read_excel('file_path.xlsx', sheet_name='Sheet1')
df.fillna(0, inplace=True)
print(df.head())

示例操作

以下是一个综合示例,展示了如何读取Excel文件中的指定工作表、跳过行、读取特定行和列,并进行空值处理:

import pandas as pd# 读取指定的工作表,并跳过前两行
df = pd.read_excel('file_path.xlsx', sheet_name='Sheet1', skiprows=2)# 读取第5到10行,指定列
df = pd.read_excel('file_path.xlsx', sheet_name='Sheet1', skiprows=4, nrows=6, usecols='A:C')# 用0替换所有空值
df.fillna(0, inplace=True)print(df)

这些操作可以帮助你灵活地读取和处理Excel文件中的数据,根据需要进行调整和组合。

3.Pandas的输出

Pandas提供了多种将数据输出到不同格式文件的方法,包括CSV、Excel、JSON、SQL等。以下是一些常见的数据输出操作和示例:

输出到CSV文件

import pandas as pd# 创建示例数据
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data)# 输出到CSV文件,不包含行索引
df.to_csv('output_file.csv', index=False)

输出到Excel文件

# 输出到Excel文件,不包含行索引
df.to_excel('output_file.xlsx', index=False, sheet_name='Sheet1')

输出到JSON文件

# 输出到JSON文件
df.to_json('output_file.json', orient='records', lines=True)

输出到SQL数据库

import sqlite3# 连接到SQLite数据库(如果数据库不存在,则会自动创建)
conn = sqlite3.connect('database.db')# 输出到SQL数据库
df.to_sql('table_name', conn, if_exists='replace', index=False)

设置分隔符、编码和格式

CSV文件设置分隔符和编码
# 输出到CSV文件,设置分隔符为分号,编码为UTF-8
df.to_csv('output_file.csv', sep=';', encoding='utf-8', index=False)
Excel文件格式化输出
# 输出到Excel文件,设置列宽
with pd.ExcelWriter('output_file.xlsx', engine='xlsxwriter') as writer:df.to_excel(writer, sheet_name='Sheet1', index=False)# 获取工作表对象worksheet = writer.sheets['Sheet1']# 设置列宽worksheet.set_column('A:A', 20)worksheet.set_column('B:B', 10)

示例操作

以下是一个综合示例,展示了如何将数据输出到CSV、Excel、JSON和SQL文件:

import pandas as pd
import sqlite3# 创建示例数据
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data)# 输出到CSV文件,不包含行索引
df.to_csv('output_file.csv', index=False)# 输出到Excel文件,不包含行索引,设置列宽
with pd.ExcelWriter('output_file.xlsx', engine='xlsxwriter') as writer:df.to_excel(writer, sheet_name='Sheet1', index=False)worksheet = writer.sheets['Sheet1']worksheet.set_column('A:A', 20)worksheet.set_column('B:B', 10)# 输出到JSON文件
df.to_json('output_file.json', orient='records', lines=True)# 连接到SQLite数据库
conn = sqlite3.connect('database.db')# 输出到SQL数据库
df.to_sql('table_name', conn, if_exists='replace', index=False)

这些操作可以帮助你将Pandas DataFrame数据输出到多种格式文件,根据具体需求进行调整和组合。

http://www.lryc.cn/news/402073.html

相关文章:

  • ubuntu 网络 通讯学习笔记2
  • 深入理解JS中的事件委托
  • Camera Raw:首选项
  • HLS加密技术:保障流媒体内容安全的利器
  • 捷配总结的SMT工厂安全防静电规则
  • UE4-初见虚幻引擎
  • 基于Vue CLI 3构建Vue3项目(Vue2也可参考)
  • Midjourney 绘画提示词汇总:让你的 AI 绘画与众不同
  • React和Vue.js的相似性和差异性是什么?
  • Nginx 和 PHP(特别是使用 Swoole 扩展)的配置和调优
  • Kafka Producer发送消息流程之消息异步发送和同步发送
  • Flutter 状态管理调研总结
  • 入门C语言只需一个星期(星期二)
  • 切换node版本
  • 【常见开源库的二次开发】基于openssl的加密与解密——Base的编解码(二进制转ascll)(二)
  • ssrf复习(及ctfshow351-360)
  • 请求通过Spring Cloud Gateway 503
  • C++代码_让室友坑我
  • AG32 的MCU与FPGA的主频可以达到568MHz吗
  • 怎样减少视频的容量 怎样减少视频内存保持清晰度
  • 谈一谈一条SQL的查询、更新语句究竟是如何执行的?
  • 自动驾驶AVM环视算法–全景和标定全功能算法实现和exe测试demo
  • 【Docker 系列】学习路线
  • 蓝色系信息工作室建站网站源码系统 带模版手机端 带完整的源代码包以及搭建部署教程
  • 什么是带宽限制,如何影响服务器数据传输?
  • RISC-V在线反汇编工具
  • 从零手写实现 nginx-32-load balance 负载均衡算法 java 实现
  • 基于STC89C51单片机的烟雾报警器设计(煤气火灾检测报警)(含文档、源码与proteus仿真,以及系统详细介绍)
  • SpringBoot整合阿里云RocketMQ对接,商业版
  • modbus slave 设备通过 网关thingsboard-gateway 将数据上传到thingsboard云平台