目录
Pandas 是一个高效的数据分析库,支持多种数据源的读取和写入。每种数据源都有其独特的特点和使用场景。以下是 Pandas 支持的主要数据源及其操作方法,包括如何在
Series
和DataFrame
之间进行转换。
1. CSV 文件
1.1 介绍
CSV(Comma-Separated Values)是一种广泛使用的文本格式,便于存储表格数据。每行表示一条记录,字段之间用逗号分隔。
1.2 操作方法
- 读取:
pd.read_csv()
- 写入:
DataFrame.to_csv()
import pandas as pd
# 读取 CSV 文件
df_csv = pd.read_csv('data.csv')
# 写入 CSV 文件
df_csv.to_csv('output.csv', index=False)
1.3 转换
- DataFrame 转 Series: 选择一列
series_from_df = df_csv['column_name']
- Series 转 DataFrame: 使用
to_frame()
df_from_series = series_from_df.to_frame()
2. Excel 文件
2.1 介绍
Excel 是一种流行的电子表格应用,通常使用 .xls
和 .xlsx
格式。常用于复杂的表格数据和多工作表的存储。
2.2 操作方法
- 读取:
pd.read_excel()
- 写入:
DataFrame.to_excel()
# 读取 Excel 文件
df_excel = pd.read_excel('data.xlsx', sheet_name='Sheet1')
# 写入 Excel 文件
df_excel.to_excel('output.xlsx', index=False)
2.3 转换
- DataFrame 转 Series: 选择一列
series_from_df = df_excel['column_name']
- Series 转 DataFrame: 使用
to_frame()
df_from_series = series_from_df.to_frame()
3. SQL 数据库
3.1 介绍
SQL(Structured Query Language)数据库用于存储结构化数据,可以通过 SQL 查询进行数据操作,适用于大规模数据管理。
3.2 操作方法
- 读取:
pd.read_sql()
- 写入:
DataFrame.to_sql()
from sqlalchemy import create_engine
# 创建数据库连接
engine = create_engine('sqlite:///example.db') # 示例为 SQLite
# 读取数据
df_sql = pd.read_sql('SELECT * FROM table_name', engine)
# 写入数据
df_sql.to_sql('new_table', engine, if_exists='replace', index=False)
3.3 转换
- DataFrame 转 Series: 选择一列
series_from_df = df_sql['column_name']
- Series 转 DataFrame: 使用
to_frame()
df_from_series = series_from_df.to_frame()
4. JSON 文件
4.1 介绍
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写,广泛用于存储结构化和半结构化数据。
4.2 操作方法
- 读取:
pd.read_json()
- 写入:
DataFrame.to_json()
# 读取 JSON 文件
df_json = pd.read_json('data.json')
# 写入 JSON 文件
df_json.to_json('output.json', orient='records')
4.3 转换
- DataFrame 转 Series: 选择一列
series_from_df = df_json['column_name']
- Series 转 DataFrame: 使用
to_frame()
df_from_series = series_from_df.to_frame()
5. HTML 文件
5.1 介绍
HTML 文件用于网页展示,可以包含表格数据。Pandas 支持从网页中提取表格数据。
5.2 操作方法
- 读取:
pd.read_html()
- 写入:
DataFrame.to_html()
# 从网页读取数据
dfs = pd.read_html('https://example.com/data.html')
# 写入为 HTML 文件
dfs[0].to_html('output.html')
5.3 转换
- DataFrame 转 Series: 选择一列
series_from_df = dfs[0]['column_name']
- Series 转 DataFrame: 使用
to_frame()
df_from_series = series_from_df.to_frame()
6. HDF5 文件
6.1 介绍
HDF5(Hierarchical Data Format version 5)是一种用于存储和管理大规模数据的文件格式,支持高效的读写操作。
6.2 操作方法
- 读取:
pd.read_hdf()
- 写入:
DataFrame.to_hdf()
# 读取 HDF5 文件
df_hdf = pd.read_hdf('data.h5', key='dataset_name')
# 写入 HDF5 文件
df_hdf.to_hdf('output.h5', key='new_dataset', mode='w')
6.3 转换
- DataFrame 转 Series: 选择一列
series_from_df = df_hdf['column_name']
- Series 转 DataFrame: 使用
to_frame()
df_from_series = series_from_df.to_frame()
7. Parquet 文件
7.1 介绍
Parquet 是一种列式存储文件格式,适合大数据处理,提供高效的压缩和编码,常用于大数据分析工具(如 Apache Spark)。
7.2 操作方法
- 读取:
pd.read_parquet()
- 写入:
DataFrame.to_parquet()
# 读取 Parquet 文件
df_parquet = pd.read_parquet('data.parquet')
# 写入 Parquet 文件
df_parquet.to_parquet('output.parquet')
7.3 转换
- DataFrame 转 Series: 选择一列
series_from_df = df_parquet['column_name']
- Series 转 DataFrame: 使用
to_frame()
df_from_series = series_from_df.to_frame()
8. Feather 文件
8.1 介绍
Feather 是一种高效的二进制文件格式,旨在快速读写 DataFrame,适合数据科学的工作流。
8.2 操作方法
- 读取:
pd.read_feather()
- 写入:
DataFrame.to_feather()
# 读取 Feather 文件
df_feather = pd.read_feather('data.feather')
# 写入 Feather 文件
df_feather.to_feather('output.feather')
8.3 转换
- DataFrame 转 Series: 选择一列
series_from_df = df_feather['column_name']
- Series 转 DataFrame: 使用
to_frame()
df_from_series = series_from_df.to_frame()
9. Stata 文件
9.1 介绍
Stata 是一种用于数据分析和统计的专用软件,其文件格式广泛被社会科学领域使用。
9.2 操作方法
- 读取:
pd.read_stata()
- 写入:
DataFrame.to_stata()
# 读取 Stata 文件
df_stata = pd.read_stata('data.dta')
# 写入 Stata 文件
df_stata.to_stata('output.dta')
9.3 转换
- DataFrame 转 Series: 选择一列
series_from_df = df_stata['column_name']
- Series 转 DataFrame: 使用
to_frame()
df_from_series = series_from_df.to_frame()
10. SAS 文件
10.1 介绍
SAS 是一种统计分析软件,常用于商业和学术研究,其数据集文件通常以 .sas7bdat
格式存储。
10.2 操作方法
- 读取:
pd.read_sas()
- 写入: (不支持)
# 读取 SAS 文件
df_sas = pd.read_sas('data.sas7bdat')
10.3 转换
- DataFrame 转 Series: 选择一列
series_from_df = df_sas['column_name']
- Series 转 DataFrame: 使用
to_frame()
df_from_series = series_from_df.to_frame()
11. SPSS 文件
11.1 介绍
SPSS 是一种用于社会科学研究的统计软件,其数据通常以 .sav
格式存储。
11.2 操作方法
- 读取:
pd.read_spss()
- 写入: (不支持)
# 读取 SPSS 文件
df_spss = pd.read_spss('data.sav')
11.3 转换
- DataFrame 转 Series: 选择一列
series_from_df = df_spss['column_name']
- Series 转 DataFrame: 使用
to_frame()
df_from_series = series_from_df.to_frame()
12. Clipboard
12.1 介绍
剪贴板是一种临时存储区域,可以快速从其他地方复制数据并粘贴到 Pandas 中。
12.2 操作方法
- 读取:
pd.read_clipboard()
- 写入: (不支持)
# 从剪贴板读取数据
df_clipboard = pd.read_clipboard()
12.3 转换
- DataFrame 转 Series: 选择一列
series_from_df = df_clipboard['column_name']
- Series 转 DataFrame: 使用
to_frame()
df_from_series = series_from_df.to_frame()
13. Pickle 文件
13.1 介绍
Pickle 是 Python 的一种对象序列化格式,可以将 Python 对象存储到文件中,以便后续读取。
13.2 操作方法
- 读取:
pd.read_pickle()
- 写入:
DataFrame.to_pickle()
# 读取 Pickle 文件
df_pickle = pd.read_pickle('data.pkl')
# 写入 Pickle 文件
df_pickle.to_pickle('output.pkl')
13.3 转换
- DataFrame 转 Series: 选择一列
series_from_df = df_pickle['column_name']
- Series 转 DataFrame: 使用
to_frame()
df_from_series = series_from_df.to_frame()
14. ORC 文件
14.1 介绍
ORC(Optimized Row Columnar)是一种列式存储格式,主要用于 Hadoop 生态系统,支持高效的数据压缩和读取。
14.2 操作方法
- 读取:
pd.read_orc()
- 写入: (不支持)
# 读取 ORC 文件
df_orc = pd.read_orc('data.orc')
14.3 转换
- DataFrame 转 Series: 选择一列
series_from_df = df_orc['column_name']
- Series 转 DataFrame: 使用
to_frame()
df_from_series = series_from_df.to_frame()