非原创,ChatGPT 问答生成。
Pandas 是一个开源数据分析和数据处理库,广泛用于 Python 编程语言中。它提供了数据结构和数据分析工具,特别适用于处理结构化数据。以下是 Pandas 框架的一些简单介绍,包括其核心数据结构、主要功能和常用操作。
核心数据结构
- Series:
- 一维数据结构,可以存储任何数据类型(整数、浮点数、字符串、Python 对象等)。
- 类似于 Python 的列表或一维数组,但具有更丰富的功能。
- 带有索引标签的数组,索引可以是任意类型的数据。
import pandas as pd
s = pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'c', 'd', 'e'])
print(s)
- DataFrame:
- 二维数据结构,类似于电子表格或 SQL 表格。
- 由多个 Series 组成,每个 Series 代表一列数据。
- 具有行索引和列索引,可以进行各种数据操作,如筛选、排序、聚合等。
data = {
'name': ['Alice', 'Bob', 'Charlie'],
'age': [25, 30, 35],
'city': ['New York', 'Los Angeles', 'Chicago']
}
df = pd.DataFrame(data)
print(df)
主要功能
- 数据读取与写入:
- 支持多种格式的数据读写,如 CSV、Excel、SQL、JSON 等。
- 例如,读取 CSV 文件并写入 CSV 文件:
df = pd.read_csv('file.csv') df.to_csv('output.csv', index=False)
- 数据选择与过滤:
- 使用标签或条件进行行和列的选择和过滤。
# 选择特定的列 df['name'] # 选择特定的行 df.loc[0] # 条件过滤 df[df['age'] > 30]
- 数据清洗:
- 处理缺失数据、重复数据、数据转换等操作。
# 填充缺失值 df.fillna(0) # 删除缺失值 df.dropna() # 删除重复值 df.drop_duplicates()
- 数据聚合与分组:
- 根据某列的值对数据进行分组,并进行聚合操作。
grouped = df.groupby('city').mean() print(grouped)
- 数据合并:
- 合并多个 DataFrame,如连接(join)和拼接(concat)。
df1 = pd.DataFrame({'key': ['A', 'B', 'C'], 'value1': [1, 2, 3]}) df2 = pd.DataFrame({'key': ['A', 'B', 'D'], 'value2': [4, 5, 6]}) # 按键连接 merged = pd.merge(df1, df2, on='key') print(merged) # 拼接 concatenated = pd.concat([df1, df2], ignore_index=True) print(concatenated)
示例:读取、处理并合并两个 CSV 文件中的特定列
假设有两个 CSV 文件 file1.csv
和 file2.csv
,每个文件都有 category
和 text
列,我们将它们读取并合并:
import pandas as pd
# 读取文件并查看列名
df1 = pd.read_csv('file1.csv')
df2 = pd.read_csv('file2.csv')
print(df1.columns)
print(df2.columns)
# 如果列名有问题,可以手动调整或使用列索引
df1 = pd.read_csv('file1.csv', usecols=['category', 'text'])
df2 = pd.read_csv('file2.csv', usecols=['category', 'text'])
# 合并两个DataFrame
merged_df = pd.concat([df1, df2], ignore_index=True)
# 写入新的CSV文件
merged_df.to_csv('merged.csv', index=False)
print(merged_df)
总结
Pandas 提供了强大的数据操作功能,可以轻松读取、处理和分析数据。通过学习和掌握 Pandas 的基本操作,可以大大提高数据分析的效率和准确性。