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

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

1. 读取CSV

读取数据

  1. 从CSV文件读取数据
python 复制代码
import pandas as pd

# 读取CSV文件
df = pd.read_csv('file_path.csv')
print(df.head())
  1. 从Excel文件读取数据
python 复制代码
# 读取Excel文件
df = pd.read_excel('file_path.xlsx', sheet_name='Sheet1')
print(df.head())
  1. 从SQL数据库读取数据
python 复制代码
import sqlite3

# 连接到SQLite数据库
conn = sqlite3.connect('database.db')

# 读取SQL查询结果
df = pd.read_sql_query("SELECT * FROM table_name", conn)
print(df.head())
  1. 从JSON文件读取数据
python 复制代码
# 读取JSON文件
df = pd.read_json('file_path.json')
print(df.head())

输出数据

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

示例操作

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

python 复制代码
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. 选择列
python 复制代码
# 选择指定的列
df_selected = df[['column1', 'column2']]
print(df_selected.head())
  1. 新增列
python 复制代码
# 新增一列,值为两列相加
df['new_column'] = df['column1'] + df['column2']
print(df.head())
  1. 删除列
python 复制代码
# 删除指定的列
df = df.drop(columns=['column1'])
print(df.head())

真假值转换

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

跳过指定行

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

读取指定行

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

空值替换

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

示例操作

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

python 复制代码
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文件

python 复制代码
import pandas as pd

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

读取指定工作表

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

读取多个工作表

python 复制代码
# 读取多个工作表,将结果存储在字典中
dfs = pd.read_excel('file_path.xlsx', sheet_name=['Sheet1', 'Sheet2'])

# 打印Sheet1的前几行
print(dfs['Sheet1'].head())

# 打印Sheet2的前几行
print(dfs['Sheet2'].head())

读取所有工作表

python 复制代码
# 读取所有工作表,将结果存储在字典中
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())

跳过指定行

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

读取指定行和列

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

空值处理

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

示例操作

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

python 复制代码
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文件

python 复制代码
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文件

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

输出到JSON文件

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

输出到SQL数据库

python 复制代码
import sqlite3

# 连接到SQLite数据库(如果数据库不存在,则会自动创建)
conn = sqlite3.connect('database.db')

# 输出到SQL数据库
df.to_sql('table_name', conn, if_exists='replace', index=False)

设置分隔符、编码和格式

CSV文件设置分隔符和编码
python 复制代码
# 输出到CSV文件,设置分隔符为分号,编码为UTF-8
df.to_csv('output_file.csv', sep=';', encoding='utf-8', index=False)
Excel文件格式化输出
python 复制代码
# 输出到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文件:

python 复制代码
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数据输出到多种格式文件,根据具体需求进行调整和组合。

相关推荐
壹屋安源2 天前
自动生成发票数据并存入Excel
python·excel·pandas·random·datetime·faker
Dream25123 天前
【数据分析之pandas】
数据挖掘·数据分析·pandas
Mobius80864 天前
探索 Seaborn Palette 的奥秘:为数据可视化增色添彩
图像处理·python·信息可视化·数据分析·pandas·matplotlib·数据可视化
赛丽曼5 天前
Pandas
人工智能·python·pandas
道友老李6 天前
【机器学习】数据分析之Pandas(一)
人工智能·python·机器学习·数据分析·pandas
无形忍者7 天前
Pandas系列|第一期:列值的前N码模糊匹配
linux·运维·pandas
code04号8 天前
df = pd.DataFrame(data)中的data可以是什么类型的数据?
python·pandas
runepic9 天前
[python]使用 Pandas 处理 Excel 数据:分割与展开列操作
python·excel·pandas
潜洋9 天前
Pandas教程之二十九: 使用 Pandas 处理日期和时间
python·pandas
fmc1211049 天前
【5】数据分析基础(series2)
数据挖掘·数据分析·pandas