Pandas是一个强大的Python数据分析库,提供了读取和输出数据的多种功能。以下是一些常见的数据读取与输出方法:
1. 读取CSV
读取数据
- 从CSV文件读取数据
import pandas as pd
# 读取CSV文件
df = pd.read_csv('file_path.csv')
print(df.head())
- 从Excel文件读取数据
# 读取Excel文件
df = pd.read_excel('file_path.xlsx', sheet_name='Sheet1')
print(df.head())
- 从SQL数据库读取数据
import sqlite3
# 连接到SQLite数据库
conn = sqlite3.connect('database.db')
# 读取SQL查询结果
df = pd.read_sql_query("SELECT * FROM table_name", conn)
print(df.head())
- 从JSON文件读取数据
# 读取JSON文件
df = pd.read_json('file_path.json')
print(df.head())
输出数据
- 将数据写入CSV文件
# 写入CSV文件
df.to_csv('output_file.csv', index=False)
- 将数据写入Excel文件
# 写入Excel文件
df.to_excel('output_file.xlsx', index=False, sheet_name='Sheet1')
- 将数据写入SQL数据库
# 将DataFrame写入SQLite数据库
df.to_sql('table_name', conn, if_exists='replace', index=False)
- 将数据写入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)
列数据处理
- 选择列
# 选择指定的列
df_selected = df[['column1', 'column2']]
print(df_selected.head())
- 新增列
# 新增一列,值为两列相加
df['new_column'] = df['column1'] + df['column2']
print(df.head())
- 删除列
# 删除指定的列
df = df.drop(columns=['column1'])
print(df.head())
真假值转换
- 将布尔值转换为0和1
# 将布尔值转换为0和1
df['boolean_column'] = df['boolean_column'].astype(int)
print(df.head())
- 将0和1转换为布尔值
# 将0和1转换为布尔值
df['int_column'] = df['int_column'].astype(bool)
print(df.head())
跳过指定行
- 跳过CSV文件的前几行
# 跳过前两行
df = pd.read_csv('file_path.csv', skiprows=2)
print(df.head())
读取指定行
- 读取CSV文件中的特定行
# 读取第5行到第10行(注意,行索引从0开始)
df = pd.read_csv('file_path.csv', skiprows=lambda x: x not in range(5, 11))
print(df)
空值替换
- 用指定值替换空值
# 用0替换所有空值
df = df.fillna(0)
print(df.head())
- 用列的平均值替换空值
# 用列的平均值替换空值
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数据输出到多种格式文件,根据具体需求进行调整和组合。