100个Pandas小技巧,让你精通Python数据分析
使用将函数应用于每个分组。使用将自定义函数应用于每个元素。使用df.apply()按元素应用函数。
掌握这 100 个 Pandas 要点,数据处理不再愁!
Pandas 常用于数据处理与分析,本文精心梳理了 100 个 Pandas 要点,助你驾驭各类数据任务。
1 Pandas基础
使用
import pandas as pd
导入Pandas库。使用
pd.DataFrame()
函数,将字典数据转化为 DataFrame 格式,便于数据处理与分析。使用
pd.read_csv()
将CSV文件中的数据加载到DataFrame中。使用
df.head()
和df.tail()
查看DataFrame的前几行和最后几行。使用
df.columns
访问列名。使用
df.index
访问索引信息。使用
df.describe()
获取数值列的汇总统计信息。使用
df.dtypes
查看每列的数据类型。使用
df.info()
获取DataFrame的简洁摘要。使用
df['column_name']
选择单个列。使用
df[['col1', 'col2']]
选择多个列。使用
df.loc[index_label]
通过索引标签访问行。使用
df.iloc[row_index]
通过整数索引访问行。使用
df.shape
获取DataFrame的维度(行数,列数)。使用
df.set_index('column_name')
设置新的索引。使用
df.reset_index()
重置索引。使用
df.rename(columns={'old_name': 'new_name'})
重命名列。使用
df.drop(columns=['col1', 'col2'])
删除列。使用
df.dropna()
删除含有缺失值的行。使用
df.fillna(value)
用特定值填充缺失值。使用
df.isnull()
检查是否存在缺失值。
2 数据操作
使用向量化操作对列执行元素级操作。
根据现有列创建新列。
使用
df['column'].apply()
将函数应用于列的每个元素。使用
df.groupby('column')
按列对数据进行分组。分组后使用
sum()
、mean()
等函数对数据进行聚合。使用
pd.pivot_table()
创建透视表进行多级分组。使用
df.sort_values('column')
按列值对DataFrame进行排序。使用
df.sort_index()
按索引对DataFrame进行排序。使用
pd.concat([df1, df2])
垂直连接DataFrame。使用
pd.merge()
在指定列上合并DataFrame。使用
pd.merge()
和how
参数执行类似SQL的连接操作。使用
pd.concat([df1, df2], axis=1)
合并具有相同索引的DataFrame。使用
df['column'].replace(old_value, new_value)
替换列中的值。使用
pd.get_dummies(df['column'])
创建虚拟变量。使用
pd.cut()
将数值数据划分为离散区间。使用
df.applymap()
将函数应用于DataFrame的每个元素。
3 索引和选择
使用布尔索引根据条件选择行。
使用
df.loc[]
进行基于标签的索引。使用
df.iloc[]
进行基于整数的索引。使用
df.ix[]
进行混合标签和整数的索引(在最新版本中已弃用)。使用
&
(与)、|
(或)和~
(非)运算符连接多个条件。使用
isin()
根据值列表过滤DataFrame的行。使用
between()
根据值的范围过滤DataFrame的行。使用
df.loc[]
同时选择特定的行和列。使用
df.select_dtypes()
根据数据类型选择列。使用
df.query('condition')
通过表达式查询DataFrame。使用布尔索引根据条件设置值。
4 时间序列数据
使用
pd.to_datetime(df['column'])
将列转换为日期时间类型。使用
df.set_index('column')
将某列设置为索引。使用
df.resample('frequency')
对时间序列数据进行重采样。使用
df.loc['YYYY-MM-DD']
访问特定时间的元素。使用
df['column'].diff()
计算日期之间的时间差。使用
df['column'].shift(periods)
移动时间序列数据。使用
rolling()
对时间序列数据进行滚动窗口计算。使用
dt
访问器访问日期时间列的组件(例如,df['column'].dt.day
)。使用
groupby()
和resample()
执行基于时间的分组操作。
5 数据清洗和预处理
使用
df.drop_duplicates()
删除重复行。使用
df['column'].str.lower()
将字符串转换为小写。使用
df['column'].str.strip()
去除字符串前后的空格。使用
df['column'].replace({'old_val': 'new_val'})
替换值。使用
df.drop_duplicates(subset='column')
删除特定列中具有重复值的行。
6 使用Pandas进行可视化
使用
df.plot()
进行基本绘图。使用
df.plot(x='col1', y='col2')
绘制特定列之间的关系图。在使用
df.plot()
后,使用Matplotlib函数自定义绘图。使用
df.plot(kind='bar')
创建条形图。使用
df['column'].plot(kind='hist')
创建直方图。使用
df.boxplot(column='column')
创建箱线图。
7 使用Pandas进行文件输入/输出
使用
df.to_csv('file.csv')
将DataFrame保存为CSV文件。使用
df.to_excel('file.xlsx')
将DataFrame保存为Excel文件。使用
pd.read_excel('file.xlsx')
从Excel文件读取数据。使用
pd.read_json('file.json')
从JSON文件读取数据。使用
df.to_json('file.json')
将DataFrame保存为JSON文件。使用
pd.read_sql('SELECT * FROM table', connection)
从SQL数据库读取数据。
8 高级主题
使用
pd.MultiIndex.from_arrays()
创建多级索引DataFrame。使用
df.stack()
和df.unstack()
堆叠和展开多级索引的层级。使用
pd.melt()
将DataFrame从宽格式转换为长格式。使用
swifter
进行并行处理以加快操作速度。使用
pd.options.display
自定义显示选项。
9 处理分类数据
使用
df['column'].astype('category')
将列转换为分类类型。使用
df['column'].cat.codes
访问分类代码。使用
df['column'].cat.rename_categories(new_categories)
重命名分类。
10 自定义函数
使用
groupby().apply()
将函数应用于每个分组。使用
df['column'].map()
将自定义函数应用于每个元素。使用
df.apply()
按元素应用函数。
11 重采样时间序列数据
使用
df.resample('frequency')
对时间序列数据进行重采样。重采样时使用聚合函数,如
sum()
、mean()
等。
12 处理文本数据
使用
str
访问器访问字符串方法(例如,df['column'].str.lower()
)。使用
str.contains()
进行字符串匹配。使用
str.extract()
使用正则表达式提取信息。
13 内存管理
使用
df.memory_usage()
分析内存使用情况。通过选择合适的数据类型(
astype()
)减少内存使用。
14 GroupBy操作
使用
df.groupby(['col1', 'col2'])
进行多级分组。在分组操作后使用
agg()
聚合多个函数。使用
agg()
对多个列应用多个函数。
15 合并DataFrame
使用
pd.concat()
并设置axis=1
水平合并DataFrame。使用
pd.merge()
基于公共列合并DataFrame。
16 地理空间数据
使用
geopandas
结合Pandas处理地理空间数据。使用
geopandas
执行空间操作,如叠加和相交。使用
geopandas.plot()
可视化地理空间数据。
这些技巧涵盖了Pandas的广泛功能,从基本的数据操作到处理时间序列、分类数据等的高级技术。在实际数据集上尝试这些技巧,有助于巩固你对Pandas及其功能的理解。

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)