如何将Dataframe单元格中的分隔行组合到列表中

时间:2018-06-03 22:06:23

标签: python pandas dataframe

我希望通过将userID与列表匹配来在Dataframe中组合pandas行。每个都有1000多个用户ID和多个条目。

我希望每个用户都有一行。 我找到了一个与我想做的完全相反的线程,即:How to explode a list inside a Dataframe cell into separate rows 先谢谢你们。

对于包含字符串和数字的行,需要做些什么?

  userID    alcohol 
  U1001     No_Alcohol_Served 7.0
            Wine-Beer 2.0
  U1002     Full_Bar 1.0
            No_Alcohol_Served 3.0
            Wine-Beer 6.0
  U1003     Full_Bar 2.0
            No_Alcohol_Served 8.0
            Wine-Beer 3.0
  U1004    No_Alcohol_Served 4.0
           Wine-Beer 4.0

我想说的是:

U1001 : No_Alcohol_served:7.0, Wine-Beer:2.0
U1002 : Full_Bar:1.0, No_Alcohol_served:3.0, Wine_beer:6.0

等等等等

1 个答案:

答案 0 :(得分:1)

您可以尝试这样的事情:

df.groupby('userID').apply(lambda x: x['name'].tolist())

示例:

给出df

  userID name
0  U1001    a
1  U1001    b
2  U1001    c
3  U1002    d
4  U1002    e
5  U1003    f

>>> df.groupby('userID').apply(lambda x: x['name'].tolist())
userID
U1001    [a, b, c]
U1002       [d, e]
U1003          [f]
dtype: object