我有一个这样的DataFrame:
+-------+-----------+
| File | Column |
+-------+-----------+
| File1 | FirstName |
| File1 | LastName |
| File2 | ID |
| File2 | City |
| File2 | State |
+-------+-----------+
如何将File
列分组并分别将Column
值作为行传递?即:
+-------+-----------+----------+-------+
| File | Col1 | Col2 | Col3 |
+-------+-----------+----------+-------+
| File1 | FirstName | LastName | NaN |
| File2 | ID | City | State |
+-------+-----------+----------+-------+
我想我需要对其进行透视,并将File
作为索引,并将Column
作为值:
df.pivot(index='File', columns='', values='Column')
但是,这就是让我感到困惑的地方-我不确定columns
参数要传递什么,即使我需要数据透视表也是如此。谢谢你。
答案 0 :(得分:1)
感谢@razdi评论和@WeNYoBen评论here的一种方式。
rule_weights = (20, 10, 5)
rule_counts = (3, 2, 4)
s = sum([w * c for (w, c) in zip(rule_weights, rule_counts)])
assignment = [100 / s * w * c for (w, c) in zip(rule_weights, rule_counts)]
答案 1 :(得分:1)
df = pd.pivot_table(df,index=['File'], columns=df.groupby(['File']).cumcount().add(1), values=['Column'],aggfunc='sum')
df.columns=df.columns.map('{0[0]}{0[1]}'.format)
使用以下方法找到答案