Pandas 33个冷知识
-
从Excel读取数据 : 使用
pd.read_excel('file.xlsx')
来读取Excel文件。 -
写入Excel : 使用
df.to_excel('file.xlsx', index=False)
将DataFrame写入Excel文件。 -
创建日期索引 : 使用
df.set_index(pd.to_datetime(df['date']))
创建日期索引。 -
向后填充缺失值 : 使用
df.fillna(method='bfill')
向后填充缺失值。 -
按索引选取多行 : 使用
df.loc[[1, 2, 5]]
按索引选取多行。 -
按位置选取多行 : 使用
df.iloc[[0, 2, 4]]
按位置选取多行。 -
创建空Series : 使用
pd.Series(dtype='float64')
创建一个空Series。 -
重置列顺序 : 使用
df = df[['col2', 'col1']]
重新排列DataFrame的列顺序。 -
按多列排序 : 使用
df.sort_values(by=['col1', 'col2'], ascending=[True, False])
按多列排序。 -
按列查找最大值的行 : 使用
df.loc[df['col'].idxmax()]
查找列中最大值所在的行。 -
按列查找最小值的行 : 使用
df.loc[df['col'].idxmin()]
查找列中最小值所在的行。 -
按条件删除行 : 使用
df.drop(df[df['col'] < 10].index)
按条件删除行。 -
按条件更新值 : 使用
df.loc[df['col'] < 10, 'col'] = 10
按条件更新值。 -
按列计算累计最大值 : 使用
df['cummax'] = df['col'].cummax()
计算列的累计最大值。 -
按列计算累计最小值 : 使用
df['cummin'] = df['col'].cummin()
计算列的累计最小值。 -
按列计算累计乘积 : 使用
df['cumprod'] = df['col'].cumprod()
计算列的累计乘积。 -
计算百分比变化 : 使用
df['pct_change'] = df['col'].pct_change()
计算列的百分比变化。 -
滚动窗口最大值 : 使用
df['rolling_max'] = df['col'].rolling(window=3).max()
计算滚动窗口最大值。 -
滚动窗口最小值 : 使用
df['rolling_min'] = df['col'].rolling(window=3).min()
计算滚动窗口最小值。 -
检测重复值 : 使用
df.duplicated()
检测重复值。 -
删除所有重复值 : 使用
df.drop_duplicates()
删除所有重复值。 -
替换值中的空字符串 : 使用
df.replace('', np.nan, inplace=True)
替换值中的空字符串。 -
数据透视表(多值) : 使用
pd.pivot_table(df, values=['val1', 'val2'], index='col1', columns='col2')
创建数据透视表。 -
分组并计算自定义函数 : 使用
df.groupby('col').apply(lambda x: x.max() - x.min())
进行分组并计算自定义函数。 -
扩展列表到多行 : 使用
df.explode('col')
将列表扩展到多行。 -
按列计算频率表 : 使用
pd.crosstab(df['col1'], df['col2'])
计算频率表。 -
将列名改为小写 : 使用
df.columns = df.columns.str.lower()
将所有列名改为小写。 -
将列名改为大写 : 使用
df.columns = df.columns.str.upper()
将所有列名改为大写。 -
按列值绘制直方图 : 使用
df['col'].hist()
绘制列值的直方图。 -
按列值绘制密度图 : 使用
df['col'].plot(kind='kde')
绘制列值的密度图。 -
按列值绘制箱线图 : 使用
df.boxplot(column='col')
绘制列值的箱线图。 -
按列值绘制散点图 : 使用
df.plot.scatter(x='col1', y='col2')
绘制列值的散点图。 -
数据框列值字符串替换 : 使用
df['col'].str.replace('old', 'new')
替换列中的字符串。