如何在 pandas 中将多行合并为一行?

sho*_*ars 8 python list dataframe pandas

我有一个列表,我正在尝试将其添加到数据框中。它看起来像这样:

list_one = ['apple','banana','cherry',' ', 'grape', 'orange', 'pineapple','']
Run Code Online (Sandbox Code Playgroud)

如果我将列表添加到数据框中,使用df = pd.DataFrame({'list_one':list_one})它将如下所示:

       list_one
   -------------
   0   apple
   1   banana 
   2   cherry
   3  
   4   grape
   5   orange
   6   pineapple
   7  
Run Code Online (Sandbox Code Playgroud)

我希望将一些行合并为一行,以便数据框看起来像这样:

       list_one
   -----------------------------
   0   apple, banana, cherry 
   1   grape, orange, pineapple
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法可以做到这一点?

感谢您花时间阅读我的问题并尽您所能提供帮助。

jez*_*ael 9

创建匹配单词的掩码 by Series.str.contains、 invert by~和 crate groups by Series.cumsum,仅过滤匹配的行并传递给GroupBy.aggwithjoin函数:

m = df['list_one'].str.contains('\w+')
df = df[m].groupby((~m).cumsum(), as_index=False).agg(', '.join)
print (df)
                   list_one
0     apple, banana, cherry
1  grape, orange, pineapple
Run Code Online (Sandbox Code Playgroud)