如何组合两列(Python)中具有相同值的行?

时间:2021-06-24 18:15:00

标签: python python-3.x dataframe numpy csv

我目前有一个 csv 文件,如下所示。第一部分只显示列名称。

"f","p","g"
"foo","in","void"
"foo","out","void"
"foo","length","void"
...

每个 f 值的 g 列值都相同。唯一独特的部分是 p。 使用 python,我如何将其组合如下:

"foo","in","out","length","void"

需要注意的一点是 csv 文件要大得多,并且某些 f 值可能具有更多 p 值。例如,它可能是这样的:

"goo","a","int"
"goo","b","int"
"goo","c","int"
"goo","d","int"
"goo","e","int"
"goo","f","int"
...

1 个答案:

答案 0 :(得分:0)

我希望我已经正确理解了您的问题。您可以按“f”、“g”列分组,然后聚合行:

x = df.groupby(["f", "g"], as_index=False)["p"].agg(list)
for vals in x.apply(lambda x: [x["f"], *x["p"], x["g"]], axis=1):
    print(vals)

打印:

['foo', 'in', 'out', 'length', 'void']
['goo', 'a', 'b', 'c', 'd', 'e', 'f', 'int']