我已经 级联 许多 Pandas系列” ,以创建一个数据框。
datasize = Reducedset['estimate'].groupby(level=0).apply(lambda x:x.count())
datasum = Reducedset['estimate'].groupby(level=0).apply(lambda x:x.sum())
datamean = Reducedset['estimate'].groupby(level=0).apply(lambda x:x.mean())
datastd = Reducedset['estimate'].groupby(level=0).apply(lambda x:x.std())
df = pd.concat([datasize,datasum,datamean,datastd],axis=1)
df 的输出是:
df
estimate estimate estimate estimate
Asia 5 2.898666e+09 5.797333e+08 6.790979e+08
Australia 1 2.331602e+07 2.331602e+07 NaN
Europe 6 4.579297e+08 7.632161e+07 3.464767e+07
North America 2 3.528552e+08 1.764276e+08 1.996696e+08
South America 1 2.059153e+08 2.059153e+08 NaN
但是,我想按以下顺序将列重命名为: ['size','sum','mean','std']
我也想将索引命名为“大陆”。
有人可以给我一些建议吗?
答案 0 :(得分:2)
相反,您的解决方案使用GroupBy.agg
,然后使用DataFrame.rename_axis
:
所以改变:
datasize = Reducedset['estimate'].groupby(level=0).apply(lambda x:x.count())
datasum = Reducedset['estimate'].groupby(level=0).apply(lambda x:x.sum())
datamean = Reducedset['estimate'].groupby(level=0).apply(lambda x:x.mean())
datastd = Reducedset['estimate'].groupby(level=0).apply(lambda x:x.std())
df = pd.concat([datasize,datasum,datamean,datastd],axis=1)
df.columns = ['size', 'sum', 'mean', 'std']
收件人:
Reducedset['estimate'] = pd.to_numeric(Reducedset['estimate'], errors='coerce')
df = (Reducedset.groupby(level=0)['estimate']
.agg(['count','sum','mean','std'])
.rename(columns={'count':'size'})
.rename_axis('Continent'))
或者:
Reducedset['estimate'] = pd.to_numeric(Reducedset['estimate'], errors='coerce')
df = (Reducedset.groupby(level=0).agg(size =('estimate', 'count'),
sum=('estimate', 'sum'),
mean=('estimate', 'mean'),
std =('estimate', 'std'))
.rename_axis('Continent'))
答案 1 :(得分:1)
您可以尝试一下。
df.columns = ['size', 'sum', 'mean', 'std']
为索引添加名称
df.rename_axis('Continent')
输出:
size sum mean std
Continent
Asia 5 2.898666e+09 5.797333e+08 6.790979e+08
Australia 1 2.331602e+07 2.331602e+07 NaN
Europe 6 4.579297e+08 7.632161e+07 3.464767e+07
North America 2 3.528552e+08 1.764276e+08 1.996696e+08
South America 1 2.059153e+08 2.059153e+08 NaN
答案 2 :(得分:1)
尝试一下:
对于索引列标题:
df.index.name='Continent'
列名称:
df.columns = ['size', 'sum', 'mean', 'std']
希望有帮助。