Pandas 是一个用于数据操作和分析的 Python 库,广泛应用于数据科学和数据分析领域。Pandas 提供了强大的数据结构和函数,用于简化数据处理任务。以下是 Pandas 的主要概念和功能用法:
主要概念
- Series:
- 一维数组,与 NumPy 的一维数组类似,但具有轴标签(可以是数字、字符串等)。
- 创建:
pd.Series(data, index=index)
import pandas as pd
s = pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])
print(s)
- DataFrame:
- 二维表格数据结构,有行和列标签。
- 创建:
pd.DataFrame(data, index=index, columns=columns)
data = {'name': ['Alice', 'Bob', 'Charlie'], 'age': [25, 30, 35]}
df = pd.DataFrame(data)
print(df)
主要功能和用法
- 数据导入与导出:
- 从 CSV 文件导入:
pd.read_csv('file.csv')
- 导出到 CSV 文件:
df.to_csv('file.csv', index=False)
df = pd.read_csv('data.csv')
df.to_csv('output.csv', index=False)
- 数据查看与检查:
- 查看前几行:
df.head()
- 查看数据维度:
df.shape
- 查看列名:
df.columns
- 基本统计信息:
df.describe()
print(df.head())
print(df.shape)
print(df.columns)
print(df.describe())
- 数据选择与过滤:
- 按列选择:
df['column_name']
或df.column_name
- 按行选择:
df.loc[index]
(按标签)或df.iloc[index]
(按位置) - 条件筛选:
df[df['column_name'] > value]
age_series = df['age']
row = df.loc[0]
filtered_df = df[df['age'] > 30]
- 数据清洗:
- 处理缺失值:
df.dropna()
(删除缺失值)或df.fillna(value)
(填充缺失值) - 删除重复值:
df.drop_duplicates()
- 重命名列:
df.rename(columns={'old_name': 'new_name'})
df_clean = df.dropna()
df_clean = df.fillna(0)
df_clean = df.drop_duplicates()
df_clean = df.rename(columns={'name': 'full_name'})
- 数据操作:
- 添加新列:
df['new_column'] = value
- 删除列:
df.drop('column_name', axis=1)
- 数据分组:
df.groupby('column_name').mean()
- 数据合并:
pd.concat([df1, df2])
或pd.merge(df1, df2, on='key_column')
df['new_age'] = df['age'] + 5
df = df.drop('age', axis=1)
grouped_df = df.groupby('name').mean()
df_merged = pd.merge(df1, df2, on='id')
- 数据可视化:
- 使用 Pandas 内置的绘图功能(基于 Matplotlib):
df.plot()
import matplotlib.pyplot as plt
df['age'].plot(kind='hist')
plt.show()
示例代码
import pandas as pd
# 创建 DataFrame
data = {'name': ['Alice', 'Bob', 'Charlie'], 'age': [25, 30, 35]}
df = pd.DataFrame(data)
# 查看数据
print(df.head())
# 筛选数据
filtered_df = df[df['age'] > 30]
# 添加新列
df['age_next_year'] = df['age'] + 1
# 数据分组
grouped_df = df.groupby('name').mean()
# 输出到 CSV 文件
df.to_csv('output.csv', index=False)
print(filtered_df)
print(grouped_df)
Pandas 的这些功能使得数据处理和分析更加高效和简便。