CSV Python:如何合并 A 列中的重复项并将 A 附加值放在 B 列中?

CSV Python: How to combine duplicates in column A and put A-attached values together in Column B?

在一个CSV文件中,我在A列中有重复的值,但在B列中它们有不同的值。我希望将A列中的值(IP)减少到一行并且B 列中它旁边列出的各个关联值,以逗号分隔。 我尝试了不同的代码示例,但不知何故没有任何效果。 如果你能帮助我,我会很高兴:)

我能够使用与 Python 3.x

一起工作的每个模块

它的实际外观:

IP;Ports
192.168.3.1;53
192.168.3.2;22
192.168.3.2;80
192.168.3.2;2000
192.168.3.2;3000

外观应该如何:

IP;Ports
192.168.3.1;53
192.168.3.2;22, 80 ,2000, 3000

您始终可以将 groupbyunique 函数一起使用:

df = pd.DataFrame(data={
    'IP': ['192.168.3.1', '192.168.3.2', '192.168.3.2', '192.168.3.2', '192.168.3.2'],
    'Port': [53, 22, 80, 2000, 3000]
})

grouped_df = df.groupby(['IP'])['Port'].unique().reset_index()

结果为:

    IP          Port
0   192.168.3.1 [53]
1   192.168.3.2 [22, 80, 2000, 3000]

您应该在加载时指定 str 数据类型:

df = pd.read_csv('input.csv', sep=';', dtype=str)
df.groupby('IP').agg(', '.join).reset_index().to_csv('output.csv', sep=';',
                                                     index=False)

它给出了预期的结果:

IP;Ports
192.168.3.1;53
192.168.3.2;22, 80, 2000, 3000