Python 带额外立柱的大熊猫枢轴
我有一个简单的问题,关于如何在有额外列的情况下透视Pandas数据帧 数据集如下所示:Python 带额外立柱的大熊猫枢轴,python,pandas,Python,Pandas,我有一个简单的问题,关于如何在有额外列的情况下透视Pandas数据帧 数据集如下所示: X = pd.DataFrame({'country':['Peru','Peru','Japan','Japan'],'method':['m1','m2','m1','m2'], 'value':[1,2,3,4]}) Country | Method | Value Peru | m1 | 1 Peru | m2 | 2
X = pd.DataFrame({'country':['Peru','Peru','Japan','Japan'],'method':['m1','m2','m1','m2'], 'value':[1,2,3,4]})
Country | Method | Value
Peru | m1 | 1
Peru | m2 | 2
Japan | m1 | 3
Japan | m2 | 4
所有“国家”对所有“方法”都有价值
我想将每个国家作为一列来分析这个数据框架,但我需要继续使用以下方法:
Peru | Japan | Method
1 | 3 | m1
2 | 4 | m4
谢谢你的帮助 您需要将
.pivot
应用到X
中,然后再应用.reset\u index
我还删除了用于cleaner输出的列的名称
df = X.pivot(index='method',columns='country',values='value').reset_index()
df.columns.name = ''
print(df)
输出:
method Japan Peru
0 m1 3 1
1 m2 4 2
具有和的解决方案:
但是如果获取错误(因为成对重复
方法
,国家
列):
ValueError:索引包含重复的条目,无法重塑
用groupby
和一些聚合函数如mean
(sum
,…)求解
X.pivot('Method','Country','Value')
?但是为什么要使用m4
?
print (X.set_index(['method','country'])['value']
.unstack(fill_value=0)
.rename_axis(None, axis=1)
.reset_index())
method Japan Peru
0 m1 3 1
1 m2 4 2
X = pd.DataFrame({'country':['Peru','Peru','Peru','Japan'],
'method':['m1','m2','m1','m2'],
'value':[1,2,3,4]})
print (X)
country method value
0 Peru m1 1
1 Peru m2 2
2 Peru m1 3 <-duplicates Peru, m1
3 Japan m2 4
print (X.groupby(['method','country'])['value'].mean()
.unstack(fill_value=0)
.rename_axis(None, axis=1)
.reset_index())
method Japan Peru
0 m1 0 2
1 m2 4 2
print (X.pivot_table(index='method',
columns='country',
values='value',
fill_value=0,
aggfunc=np.mean).
rename_axis(None, axis=1).
reset_index())
method Japan Peru
0 m1 0 2
1 m2 4 2