Pandas 33个冷知识
-
选取前n行: 使用
df.head(n)
来选取DataFrame的前n行。 -
选取后n行: 使用
df.tail(n)
来选取DataFrame的后n行。 -
按索引选取行: 使用
df.loc[10:20]
按索引选取第10到20行的数据。 -
按位置选取行: 使用
df.iloc[0:5]
按位置选取前5行的数据。 -
分箱操作: 使用
pd.cut(df['col'], bins=3)
将列数据分箱。 -
qcut操作: 使用
pd.qcut(df['col'], q=4)
将列数据按分位数分箱。 -
采样: 使用
df.sample(frac=0.5)
随机采样一半的数据。 -
采样(指定数量): 使用
df.sample(n=100)
随机采样100条数据。 -
分组排名: 使用
df.groupby('col').rank()
对分组后的数据进行排名。 -
移除多级索引: 使用
df.columns = df.columns.get_level_values(0)
移除多级索引。 -
条件填充: 使用
df['col'].where(df['col'] > 0, 0)
根据条件填充值。 -
类别计数: 使用
df['col'].value_counts(normalize=True)
计算类别的相对频率。 -
日期提取: 使用
df['date'].dt.year
提取年份。 -
创建时间序列: 使用
pd.date_range(start='1/1/2022', end='12/31/2022')
创建一个时间序列。 -
日期差值: 使用
df['date_diff'] = (df['end_date'] - df['start_date']).dt.days
计算日期差值。 -
删除多列: 使用
df.drop(['col1', 'col2'], axis=1)
删除多列。 -
按列计算唯一值个数: 使用
df.nunique()
计算每列的唯一值个数。 -
批量替换: 使用
df.replace({'old_val1': 'new_val1', 'old_val2': 'new_val2'})
进行批量替换。 -
分组聚合: 使用
df.groupby('col').agg({'col1': 'sum', 'col2': 'mean'})
进行分组聚合操作。 -
自定义聚合函数: 使用
df.groupby('col').agg(lambda x: x.max() - x.min())
自定义聚合函数。 -
数据透视表(多列值): 使用
pd.pivot_table(df, values=['col1', 'col2'], index='col3', columns='col4')
创建多列值的数据透视表。 -
数据合并(内连接): 使用
pd.merge(df1, df2, on='key', how='inner')
进行内连接。 -
数据合并(外连接): 使用
pd.merge(df1, df2, on='key', how='outer')
进行外连接。 -
数据合并(左连接): 使用
pd.merge(df1, df2, on='key', how='left')
进行左连接。 -
数据合并(右连接): 使用
pd.merge(df1, df2, on='key', how='right')
进行右连接。 -
多索引分组: 使用
df.groupby(['col1', 'col2']).sum()
进行多索引分组。 -
跨列操作(按行): 使用
df.apply(lambda x: x['col1'] * x['col2'], axis=1)
进行跨列操作。 -
跨列操作(按列): 使用
df.apply(lambda x: x.mean(), axis=0)
进行跨列操作。 -
行列转换: 使用
df.T
进行行列转换。 -
计算变异系数: 使用
(df.std() / df.mean())
计算每列的变异系数。 -
扩展数据: 使用
df.explode('col')
将列表扩展为多行。 -
查找并替换: 使用
df.replace(to_replace='old', value='new')
查找并替换指定值。 -
保存为HTML: 使用
df.to_html('output.html')
将DataFrame保存为HTML文件。