我有这个条目
id value reps
1 333 1
1 332 4
1 335 1
4 555 3
4 225 1
444 2 5
我希望这样,按列代表从少到多组织值
id col1 col2 col3 col4
1 333 335 332 nan
4 225 555 nan nan
444 2 nan nan nan
我试过使用数据透视表,得到了这个
dataframe = dataframe.pivot_table(index='id', columns='reps', values='value')
dataframe = dataframe.rename_axis(columns=None).reset_index()
id 1 3 4 5
1 334 nan 332 nan
4 225.5 555.5 nan nan
444 nan nan nan 2
2条答案
按热度按时间j8ag8udp1#
您可以先按
reps
(如果是这样,也可以按m1n 1o1p)对 Dataframe 进行排序,然后按每个id
的累积计数更改reps
。然后,您可以按照建议执行透视表。
它不会在预期输出中返回带有
NaN
的col4,但您可以稍后添加它。s71maibg2#
按“id”分组并创建(“value”,“reps”)元组,并按“reps“排序:
使用“value”作为数据(位于索引
0
),从上面排序的元组创建结果 Dataframe 。pandas
填充以0
开头的默认列名。如果需要,可以更改它: