【问题标题】:Creating a dummy out of a list variable python从列表变量 python 创建一个虚拟对象
【发布时间】:2023-01-16 23:53:33
【问题描述】:

我有一个看起来像这样的熊猫数据框:

docdb    tech_classes
1187498     ['Y02P 20/10']
1236571     ['Y02B 30/13' 'Y02B 30/12' 'Y02P 20/10']
1239098     ['Y10S 426/805' 'Y02A 40/81']
...

我想做的是创建 N 虚拟变量,其中 N 是变量 tech_classes 中出现的名称总数(请注意 Y02P 20/10 是一个唯一名称,就好像它是:Y02P_20/10 等 Y02B 30/ 13 等)。只要 docdb 在 tech_classes 中有该类,变量就应该是值为 1 的虚拟变量。

换句话说,上面例子的结果应该是这样的:

docdb Y02P_20/10 Y02B_30/13 Y02B_30/12 Y02A_40/81 Y10S_426/805 ...
1187498  1             0          0          0          0
1236571  1             1          1          0          0
1239098  0             0          0          1          1
...

非常感谢!

附言我知道 pandas 中有一个 get_dummies 但它不太有效,因为 tech_classes 不是来自...的列表形式

【问题讨论】:

  • 你的代码在哪里?
  • tech_classes 中是否有列表或字符串或单个字符串?

标签: python pandas dummy-variable


【解决方案1】:

假设您在tech_classes 中有列表,您可以加入字符串并使用str.get_dummies

df = df.join(df.pop('tech_classes').agg('|'.join).str.get_dummies())

【讨论】:

    猜你喜欢
    • 2015-08-11
    • 2021-09-13
    • 1970-01-01
    • 1970-01-01
    • 2019-03-18
    • 1970-01-01
    • 2019-08-06
    • 2015-05-20
    • 2021-08-11
    相关资源
    最近更新 更多