pandas.concat()
pandas.concat(),一般最常见的用法如下:传入的参数是一个list,里面是df
df_new = pd.concat([df1, df2])
其实,它还有一个更好用的用法:传入的参数是字典,其中字典的value是一个Series,其key值是该Series的名称/标识。如下
df_new = pd.concat(series_dict).reset_index()
这个用法在我们进行数据分析的时候,会经常用到。比如:给定一个样本集S,每个样本包含N个特征,任务:计算每一个特征的最大最小值、平均值、IV值等一系列指标,然后把所有结果合并在一起,生成一个大报告。代码如下
df = pd.read_csv('data.csv')
feat_list = ['a','b']
dict_result = {}
for feat in feat_list:
print("feat = %s" % str(feat))
feat_min = np.nanmin(df[feat]) # np.nanmin(),在排除空值的情况下,求最小值。当所有值都为空的时候,返回np.nan
feat_max = np.nanmax(df[feat])
feat_mean = np.nanmean(df[feat])
series_result = pd.DataFrame({'min':feat_min,'max':feat_max,'mean':feat_mean})
dict_result[feat] = series_result # 得到单个特征的统计指标,以该特征名为key值,存入字典
# 将所有特征的统计值合并在一起,生成一个df。大功告成!
df_result = pd.concat[dict_result].reset_index().rename({'level_0':'feat'})