Преобразование данных Pandas из условия - PullRequest
0 голосов
/ 31 октября 2018

У меня есть датафрейм в форме:

    order_id    product_id
0   2           33120
1   4           28985
2   4           9327
3   7           45918
4   14          30035

Я хотел бы преобразовать или создать новый фрейм данных, в котором все product_id для каждого order_id находятся в одной строке. И в конце концов напишите в CSV.

    product_id1 product_id2 ...
0   33120
1   28985       9327
2   45918
3   30035

Ответы [ 2 ]

0 голосов
/ 31 октября 2018

Другой способ, хотя и менее идеальный, чем у @ W-B, заключается в использовании apply:

df.groupby('order_id')['product_id'].apply(lambda x: pd.Series(x.values)).unstack()

                0       1
order_id                 
2         33120.0     NaN
4         28985.0  9327.0
7         45918.0     NaN
14        30035.0     NaN
0 голосов
/ 31 октября 2018

Это проблема pivot, вам просто нужно cumcount создать ключ

newdf=df.assign(key=df.groupby('order_id').cumcount()).pivot('order_id','key','product_id').fillna('')
newdf
Out[124]: 
key             0     1
order_id               
2         33120.0      
4         28985.0  9327
7         45918.0      
14        30035.0      
#newdf.to_csv('your.csv')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...