【发布时间】:2017-07-12 08:57:23
【问题描述】:
我有两个如下所示的数据框 -
df1_data = {'id' :{0:'101',1:'102',2:'103',3:'104',4:'105'},
'sym1' :{0:'abc',1:'pqr',2:'xyz',3:'mno',4:'lmn'},
'a name' :{0:'a',1:'b',2:'c',3:'d',4:'e'}}
df1 = pd.DataFrame(df1_data)
print df1
df2_data = {'sym2' :{0:'abc',1:'xxx',2:'xyz'},
'a name' :{0:'k',1:'e',2:'t'}}
df2 = pd.DataFrame(df2_data)
print df2
我想检查 df2 的 sym2 列中是否存在 df1 中可用的 sym1,如果存在,我想提取该行的 a name 并将其作为新列添加到 df1 new_col 。
为此,我在 sn-p 下面尝试了它,它也可以工作,但对于我的长数据帧,它不起作用。我面临以下错误和警告消息 -
pandas.core.indexing.IndexingError: Unalignable boolean Series key provided
UserWarning: Boolean Series key will be reindexed to match DataFrame index.
代码 sn-p -
df1['root'] = df2[df1['sym1'].isin(df2.sym2)]['a name']
print df1
如何从 df2 中获取这些名称列并在 df1 中为特定行创建 new_col?
【问题讨论】:
-
您是否需要更多信息来说明为什么会出现 IndexingError 或者下面的工作示例是否足够?