【问题标题】:How to return a dictionary key if its values exist in a dataframe如果字典键的值存在于数据框中,如何返回字典键
【发布时间】:2022-08-05 22:33:36
【问题描述】:

如果 pandas DataFrame 列中的值在字典的值中,如何返回字典键?

那么对于下面的df,您将如何根据col1 是否在字典的值中添加一个返回字典键的col3 列,即oddeven

df = pd.DataFrame({\"col1\": [1,2,3,4,5], \"col2\": [6,7,8,9,10]})
d = {\"odd\": [1,3,5,7,9], \"even\": [2,4,6,8,10]}
df[\"col3\"] = np.where(df[\"col1\"].isin(d.values), d.key, \"\") # ???

我知道您可以使用% 或其他东西来确定一个值是奇数还是偶数,以上只是一个示例,其他字典可能是我们需要读取的某种类型的配置文件或json。

希望能够产生这样的东西:

   col1  col2  col3
0     1     6   odd
1     2     7  even
2     3     8   odd
3     4     9  even
4     5    10   odd
  • 将您的字典重新映射到 number: result 然后只是 df[\'col\'].map(dictionary)

标签: python pandas


【解决方案1】:

你可以试试

df['col3'] = df['col1'].mod(2).map({0: 'even', 1: 'odd'})
# or
d = {v:k for k, lst in d.items() for v in lst}
df['col3'] = df['col1'].map(d)
print(df)

   col1  col2  col3
0     1     6   odd
1     2     7  even
2     3     8   odd
3     4     9  even
4     5    10   odd

【讨论】:

  • OP 知道您可以使用 mod 来获得赔率和偶数;这是一个说明性的例子
  • @ifly6 没注意到,用另一个解决方案更新。
猜你喜欢
  • 2015-07-24
  • 2016-02-29
  • 2019-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-24
  • 1970-01-01
  • 2011-02-05
相关资源
最近更新 更多