【问题标题】:New column in pandas dataframe from dictionary with lists as values [duplicate]字典中的熊猫数据框中的新列,列表为值[重复]
【发布时间】:2022-08-15 23:17:07
【问题描述】:

我有一个数据框:

df = pd.DataFrame({\'col1\': [111, 333, 456]})

我有一个字典,其中的键与类型列表对应的类别和值。

dct = {\'A\': [111, 222, 333, 444], \'B\': [123, 456, 789]}

列表中的值可能会或可能不会在col1 中找到。我想创建col2,它将从dct 返回密钥。

我想要的输出是这样的:

col1   |   col2
-------+---------
111    |    A
333    |    A
456    |    B

我试过df[\'col2\'] = df[\'col1\'].map(dct) 但这会返回NaN 值。

  • col1 的值是否可能在与 dct 中的 \'A\' 和 \'B\' 关联的列表中?还是总是最多只有一场比赛
  • dict的内容是AB,df_col1的内容是数字,代码按预期工作,因为问题似乎是你试图倒退
  • @Tim J 不,这些列表是互斥的。

标签: python pandas dataframe


【解决方案1】:

您可以尝试:

df['col2'] = df['col1'].map(lambda x: [key for key in dct if x in dct[key]][0])

返回:

   col1 col2
0   111    A
1   333    A
2   456    B

【讨论】:

    猜你喜欢
    • 2015-06-02
    • 2022-11-15
    • 2014-11-27
    • 2022-01-23
    • 2019-05-07
    • 2020-07-22
    • 2020-07-09
    相关资源
    最近更新 更多