pandas 小技巧——pd.concat(dict)

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'})
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值