我希望基本上是pivot,而不需要在最后进行聚合,以保持Dataframe的完整性,而不是创建分组对象
例如:
+---------++---------++---------++---------+
| country| code |Value | ids
+---------++---------++---------++---------+
| Mexico |food_1_3 |apple | 1
| Mexico |food_1_3 |banana | 2
| Canada |beverage_2 |milk | 1
| Mexico |beverage_2 |water | 2
+---------++---------++---------++---------+
需要这个:
+---------++---------++---------++----------+
| country| id |food_1_3 | beverage_2|
+---------++---------++---------++----------+
| Mexico | 1 |apple | |
| Mexico | 2 |banana |water |
| Canada | 1 | |milk |
|+---------++---------++---------++---------+
我试过了
(df.groupby(df.country, df.id).pivot("code").agg(first('Value').alias('Value')))
但基本上是一个前1名。在我的实际例子中,我有20列,有些只包含整数,有些包含字符串。。。所以,总数,计数,收集,列表,这些AGG都没有解决。。。
1条答案
按热度按时间cgyqldqp1#
那是因为你的“id”不是唯一的。添加一个唯一的索引列,这样应该可以: