用pandas转换csv文件格式?[副本]

f8rj6qna  于 2023-09-28  发布在  其他
关注(0)|答案(1)|浏览(79)

此问题已在此处有答案

Concatenate strings from several rows using Pandas groupby(8个回答)
26天前关闭
我现在对Pandas不熟悉。我有一个csv文件,其中有格式和其他一些列,简化如下:

USER; so; ROLE
hugo; a; role_x
hugo; a; role_y
hugo; b; role_x
hugo; b; role_y
otto; role_x

并且我需要以下形式的输出,其中角色类别应该只列出一次:

USER; ROLES
hugo; role_x, role_y
otto; role_x

我用迭代和字典来做这件事。这对Pandas来说更容易吗?
通过引用的解决方案,我得到如下内容:

USER; ROLES
hugo; role_x, role_y, role_x, role_y
otto; role_x

但结果应该只显示一次相同的角色。

twh00eeo

twh00eeo1#

Pandas非常适合数据聚合和操作,您可以非常轻松地按用户分组:

import pandas as pd

# Read the CSV file into a pandas DataFrame
df = pd.read_csv('your_file.csv', sep=';')

# Do your grouping
result_df = df.groupby('USER')['ROLE'].agg(', '.join).reset_index()

# Change the 'ROLE' column to 'ROLES'
result_df.rename(columns={'ROLE': 'ROLES'}, inplace=True)

# Save the result
result_df.to_csv('output_file.csv', sep=';', index=False)

下面是一些关于如何使用groupby函数的好例子:https://www.geeksforgeeks.org/python-pandas-dataframe-groupby/

相关问题