python中pandas的知识点整理

Pandas核心功能包括数据结构(Series、DataFrame)、读写文件、数据查看、选择索引、清洗、操作、分组聚合、合并连接及时间序列处理,系统掌握可应对多数数据分析任务。

Python中Pandas是数据处理和分析的核心库,广泛用于读取、清洗、转换和分析结构化数据。以下是Pandas主要知识点的系统整理,帮助快速掌握其核心功能。

1. 数据结构:Series 和 DataFrame

Series 是带标签的一维数组,支持任意数据类型。

• 创建方式:pd.Series(data, index=index)
• 示例:
   s = pd.Series([1, 3, 5], index=['a', 'b', 'c'])
   s['a'] → 1

DataFrame 是二维表格型数据结构,类似Excel表格或SQL表。

• 创建方式:pd.DataFrame(data, columns=列名, index=索引)
• 示例:
   df = pd.DataFrame({'name': ['Alice', 'Bob'], 'age': [25, 30]})

2. 数据读取与写入

Pandas支持多种文件格式的输入输出操作。

• 读取CSV:pd.read_csv('file.csv')
• 读取Excel:pd.read_excel('file.xlsx')
• 读取JSON:pd.read_json('file.json')
• 写入文件:
   df.to_csv('output.csv', index=False)
   df.to_excel('output.xlsx')

常用参数:
   sep=','(指定分隔符)
   header=0(指定哪行为列名)
   usecols=['col1', 'col2'](只读取指定列)
   encoding='utf-8'

3. 数据查看与基本信息

• 查看前几行:df.head(n)
• 查看后几行:df.tail(n)
• 查看列名:df.columns
• 查看索引:df.index
• 查看数据类型:df.dtypes
• 数据形状:df.shape
• 统计摘要:df.describe()(数值列均值、标准差等)
• 检查缺失值:df.isnull().sum()

4. 数据选择与索

• 按列选择:
   df['col'] 或 df[['col1', 'col2']]
• 按行切片:
   df[1:4]
• 使用 loc:按标签选择
   df.loc[1, 'name']
   df.loc[:, 'age' > 25]
• 使用 iloc:按位置选择
   df.iloc[0, 1] → 第一行第二列
• 条件筛选:
   df[df['age'] > 25]

5. 数据清洗

• 处理缺失值:
   df.dropna():删除含空值的行/列
   df.fillna(value):用指定值填充
   df.fillna(method='ffill'):向前填充
   df.fillna(df.mean()):用均值填充数值列

• 处理重复值:
   df.duplicated():返回布尔Series
   df.drop_duplicates():删除重复行

• 类型转换:
   df['age'] = df['age'].astype(int)
   pd.to_datetime(df['date_col'])

6. 数据操作

• 添加列:
   df['new_col'] = df['col1'] + df['col2']
• 删除列或行:
   df.drop('col_name', axis=1, inplace=True)
• 重命名列:
   df.rename(columns={'old': 'new'}, inplace=True)
• 设置索引:
   df.set_index('col', inplace=True)
   df.reset_index(inplace=True)

7. 数据聚合与分组

• 分组操作:
   grouped = df.groupby('category')
   grouped.mean()
   grouped.size()
   grouped.agg({'age': 'mean', 'salary': 'sum'})

• 常用聚合函数:
   sum(), mean(), count(), max(), min(), std()

8. 合并与连接数据

• 拼接(concat):
   pd.concat([df1, df2], axis=0) # 上下拼接
   pd.concat([df1, df2], axis=1) # 左右拼接

• 合并(merge):
   pd.merge(df1, df2, on='key') # 内连接
   pd.merge(df1, df2, on='key', how='left') # 左连接
   pd.merge(df1, df2, left_on='key1', right_on='key2')

9. 时间序列处理

• 转换为时间类型:
   pd.to_datetime(df['date'])
• 设置时间为索引:
   df.set_index('date', inplace=True)
• 重采样:
   df.resample('M').mean() # 按月汇总
• 时间偏移:
   df.index + pd.DateOffset(days=1)

10. 实用技巧

• 查看唯一值:
   df['col'].unique()
   df['col'].nunique()
• 值计数:
   df['col'].value_counts()
• 排序:
   df.sort_values(by='col', ascending=False)
   df.sort_index()
• 应用函数:
   df['col'].apply(lambda x: x.upper())
   df.apply(np.mean, axis=1)

基本上就这些。熟练掌握以上内容,就能应对大多数数据分析任务。多练习真实数据集(如CSV导入)能更快上手。不复杂但容易忽略的是索引设置和缺失值处理,建议在每步操作后打印shape或head验证结果。