1. concat合并数据
- API: pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False, keys=None, leves=None, names=None, verify_integrity=False, copy=True)
- 参数解释
- objs: [Series, DataFrame, Panel, ..] 需要合并的DataFrame列表
- axis: {0, 1} 合并的轴, 列合并: axis=1, 行合并: axis=0
- join: {'inner', 'outer'} outer为联合, inner为交集
- 使用
- 横向合并(列合并): pd.concat([df1, df2, ...], axis=1)
- 纵向合并(添加行): pd.concat([df1, df2, ...], axis=0)
2. 切片
- API: df.iloc , 按照位置顺序获取
- pd.iloc[行开始位置: 行结束位置, 列开始位置: 列结束位置]
- API: df.loc , 按照名称获取
- pd.loc[行开始名称: 行结束名称, 列开始名称: 列结束名称]
3.日期相关特征
- 将数值型数据转换成日期格式: data['data_parsed'] = pd.to_datetime(data['date'], format='%Y%m%d')
- 将日期格式转换成数值型: dt.strftime('%y-%m-%d') #%Y是4位年,%y是2位年
- 获取日期格式的属性
- 获取年份: dt.year
- 获取月份: dt.mouth
- 获取日: dt.day
- 获取小时: dt.hour
- 获取星期名称: data['daynameofweek'] = data['data_parsed'].dt.weekday_name
4. 热编码: get_dummies
-
API : pd.get_dummies(data, prefix, columns)
5. 查看某一列去重后的值
- API: data.column.unique()
6. 查看是否有缺失值和无穷值
- 查看缺失值: all_dummy_df.isnull().sum().sort_values(ascending=False).head()
-
查看缺失率
total = df_train.isnull().sum().sort_values(ascending=False) percent = (df_train.isnull().sum()/df_train.isnull().count()).sort_values(ascending=False) missing_data = pd.concat([total, percent], axis=1, keys=['Total', 'Percent']) missing_data.head(20)
- 查看无穷值: np.isinf(data['column']).any()
- 替换缺失值和无穷值
- data.replace(np.inf, 0, inplace=True)
- data.replace(np.nan, 0, inplace=True)
7. pandas不省略显示行和列
- 不省略显示行: pd.set_option('display.max_rows', None)
- 不省略显示列: pd.set_option('display.max_columns', None)