DataFrame从多行转换为单行

丹尼斯·纳沃特尼(Denis Navotny)

我的熊猫数据框看起来像(空白交易ID属于ID 1或ID 2):

df = pd.DataFrame(data=np.array([['1', 'Item1'], ['', 'Item2',], ['', 'Item3'] , ['2', 'Item1'], ['', 'Item2',]]), columns=['TransactionId', 'ProdictName'])

在此处输入图片说明

我正在寻找解决方案,如何将df转换没有空白事务ID的新df1,并且项目之间用逗号分隔:

df1 = pd.DataFrame(data=np.array([['1', 'Item1, Item2, Item3'], ['2', 'Item1, Item2']]), columns=['TransactionId', 'ProdictName'])

在此处输入图片说明

谢谢

Mayank porwal

您可以使用df.replacedf.ffill()df.groupby具有df.groupby.agg

In [15]: df.TransactionId = df.TransactionId.replace('', np.nan) 
In [19]: df.TransactionId = df.TransactionId.ffill()

In [21]: df1 = df.groupby('TransactionId', as_index=False).agg(','.join)

In [22]: df1
Out[22]: 
  TransactionId        ProdictName
0             1  Item1,Item2,Item3
1             2        Item1,Item2

按照@sammywemmy的一线:

In [26]: df.replace("", method="ffill").groupby("TransactionId", as_index=False).agg(",".join)  
Out[26]: 
  TransactionId        ProdictName
0             1  Item1,Item2,Item3
1             2        Item1,Item2

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章