Python熊猫垂直连接

时间:2018-08-21 13:57:47

标签: python python-3.x pandas

我不确定自己的标题是否准确,不过我正在寻求建议。

假设我有一个如下所示的df:

           file_names        searched_for  file_id_value
0          file_1.txt               a              0
6          file_2.txt               a              1
16         file_1.txt               b              2
20         file_2.txt               b              3

我感兴趣的是得到以下输出:

           file_names        searched_for  file_id_value
0          file_1.txt               a, b              0
1          file_2.txt               a, b              1

有没有办法像这样组合值? Join和Merge不会这样做。

1 个答案:

答案 0 :(得分:3)

通过列和聚合函数的字典使用DataFrameGroupBy.agg

df1 = (df.groupby('file_names', as_index=False)
         .agg({'searched_for':','.join,'file_id_value':'first'}))
print (df1)
   file_names searched_for  file_id_value
0  file_1.txt          a,b              0
1  file_2.txt          a,b              1