python - 将单元格中的多个值转换为列

标签 python pandas

我有一个具有以下结构的数据框:

First_Name  Last_Name  Group_Membership
Joe         Francis    A
Jane        Davis      B
Mary        Smith      A,B,C
Ian         Brown      A

我需要将单元格 Group_Membership 中的值转换为列并获取如下所示的数据框:

First_Name  Last_Name  A    B    C
Joe         Francis    Yes  No   No
Jane        Davis      No   Yes  No
Mary        Smith      Yes  Yes  Yes
Ian         Brown      Yes  No   No

我设法将 Group_Membership 列中的值转换为列表,然后“分解”它,但随后我应该以某种方式转置它

df.['Group_Membership'] = df.['Group_Membership'].str.split(',')
df.explode('Group_Membership')

现在我应该以某种方式旋转它。另外,我不确定这是最好的方法......

我们将非常感谢您的帮助!

最佳答案

首先创建一个辅助 DataFrame(ABC 列):

df2 = df.Group_Membership.str.split(',').explode().to_frame().assign(val='Yes')\
    .pivot(columns='Group_Membership').droplevel(0, axis=1).fillna('No')

(打印出来查看内容)。

然后创建结果:

result = df[['First_Name', 'Last_Name']].join(df2)

结果是:

  First_Name Last_Name    A    B    C
0        Joe   Francis  Yes   No   No
1       Jane     Davis   No  Yes   No
2       Mary     Smith  Yes  Yes  Yes
3        Ian     Brown  Yes   No   No

关于python - 将单元格中的多个值转换为列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65010273/

相关文章:

python - 为 ARM 与 x86 编写代码时有何区别?

python - Pandas Dataframe 中的灵活选择

python - 使用 pandas TimeSeries 在某个时间戳后选择第一个索引

python - 如何将从 csv 文件导入 python 的数据转换为时间序列?

python - 如何配置 Qt4Agg 后端的行为?

python - 当使用 Apache/uWSGI 或 Werkzeug 时,flask json 输出看起来有所不同

python 属性错误 : 'tuple' object has no attribute 'show' using matplotlib

python - abs() 的错误操作数类型 : 'list'

python - 如何显示数据框,其中列连续显示两次

pandas - 如何在pandas中调用带有 block 的描述函数?