首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >尝试播放大熊猫时的关键错误

尝试播放大熊猫时的关键错误
EN

Stack Overflow用户
提问于 2017-12-04 01:26:07
回答 2查看 172关注 0票数 1

我试图对AD使用EW的vlookup值。

Dataframe 1

代码语言:javascript
运行
复制
    EW      
0   A  
1   BC   

Dataframe 2

代码语言:javascript
运行
复制
      AD     
0     A  
1     B  
2     BC  

然后我跑:

代码语言:javascript
运行
复制
df3 = df1.insert(0, 'AD', df1['EW'].map(df2.set_index('EW')['AD']))
print (df1)

期望df3的输出:

代码语言:javascript
运行
复制
      AD     
0     A  
1     NaNa  
2     BC  

我一直得到:KeyError: 'EW'

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-12-04 01:35:26

您的代码错误,来自df2没有列名'EW‘

我将推荐使用isin + np.where

代码语言:javascript
运行
复制
df2.AD=np.where(df2.AD.isin(df1.EW),df2.AD,np.nan)
df2
Out[193]: 
    AD
0    A
1  NaN
2   BC
票数 1
EN

Stack Overflow用户

发布于 2017-12-04 01:38:42

看起来您正在检查df2.AD中的值是否在df1.EW中。您可以通过左合并来完成这一任务。

代码语言:javascript
运行
复制
import pandas as pd

df1 = pd.DataFrame({'EW':['A','BC']})
df2 = pd.DataFrame({'AD':['A','B','BC']})
df3 = df2.merge(df1, how='left', left_on='AD', right_on='EW')[['EW']]
df3.rename(columns={'EW':'AD'})

# returns:
    EW
0    A
1  NaN
2   BC
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47625257

复制
相关文章

相似问题

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