我不确定自己的标题是否准确,不过我正在寻求建议。
假设我有一个如下所示的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不会这样做。
答案 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