我对熊猫有问题。我有一个包含三列的数据框:“ id1”,“ id2”,“金额”。
由此,我想创建另一个数据框,其索引为“ id1”,列为“ id2”,并且单元格包含相应的“金额”。
让我们来看一个例子:
import pandas as pd
df = pd.DataFrame([['first_person','first_item',10],['first_person','second_item',6],['second_person','first_item',18],['second_person','second_item',36]],columns = ['id1','id2','amount'])
产生:
id1 id2 amount
0 first_person first_item 10
1 first_person second_item 6
2 second_person first_item 18
3 second_person second_item 36
然后我想创建第二个数据框,它是:
first_item second_item
first_person 10 6
second_person 18 36
当然,在发布之前,我已经花了一段时间了,但是我为此所做的只是一个双重的“ for循环” ...对于我的数据框的大小,这是无处可计算的。您知道如何以更Python化的方式执行此操作吗?(这显然比“ for”循环要有效得多!)
我想你可以用pivot
与rename_axis
(新中pandas
0.18.0
):
print df
id1 id2 amount
0 first_person first_item 10
1 first_person second_item 6
2 second_person first_item 18
3 second_person second_item 36
print df.pivot(index='id1', columns='id2', values='amount')
.rename_axis(None)
.rename_axis(None, axis=1)
first_item second_item
first_person 10 6
second_person 18 36
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句