2
我有一个数据帧是这样的:转换大熊猫数据帧到多指标列
a b c
foo 1 6 9
bar 2 4 8
fud 3 5 7
我想将它转化成这样的:每列
a b c
name num name num name num
0 foo 1 bar 4 fud 7
1 bar 2 fud 5 bar 8
2 fud 3 foo 6 foo 9
即组的名称和数字对,用相应的名称排序数字,这些名称曾经是索引。
我可以做一个循环,但我一直在想,必须有更多的'pandasy'方法来做到这一点。这是我用上面的代码:
import pandas as pd
my_index=['foo','bar','fud']
orig = pd.DataFrame({'a': [1,2,3], 'b':[6,4,5], 'c':[9,8,7]}, index=my_index)
multi = pd.MultiIndex.from_product([['a','b','c'],['name','num']])
x = pd.DataFrame(index=range(3), columns=multi)
for h in orig.columns:
s = orig[h].sort_values().reset_index()
x[h,'name'] = s['index']
x[h,'num'] = s[h]
我敢肯定有更好的方式来做到这一点,虽然如此,如果大熊猫专家能帮助我,这将是大加赞赏。
谢谢!
啊,这给了我一些东西来啃。第一个是非常简洁,但它仍然涉及循环通过列。第二个避免这一点。谢谢! – OldGeeksGuide