首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果字典键的值存在于dataframe中,如何返回它

如果字典键的值存在于dataframe中,如何返回它
EN

Stack Overflow用户
提问于 2022-08-05 14:28:54
回答 3查看 64关注 0票数 0

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

因此,对于下面的df,您将如何添加一列col3来返回字典键,即基于col1是否在字典的值中的oddeven

代码语言:javascript
复制
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。

想要能够生产出这样的东西:

代码语言:javascript
复制
   col1  col2  col3
0     1     6   odd
1     2     7  even
2     3     8   odd
3     4     9  even
4     5    10   odd
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-08-05 15:58:22

你可以试试这样的方法:

代码语言:javascript
复制
for key in d:
   df.loc[df.col1.isin(d[key]), 'col3'] = key

print(df)

输出:

代码语言:javascript
复制
   col1  col2  col3
0     1     6   odd
1     2     7  even
2     3     8   odd
3     4     9  even
4     5    10   odd
票数 1
EN

Stack Overflow用户

发布于 2022-08-05 14:32:40

你可以试试

代码语言:javascript
复制
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)
代码语言:javascript
复制
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
票数 1
EN

Stack Overflow用户

发布于 2022-08-05 14:43:12

代码语言:javascript
复制
import pandas as pd
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]}
data = pd.DataFrame(d).stack().reset_index()[["level_1", 0]].to_dict()['level_1']
df.col1.map(data)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73251340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档