繁体   English   中英

如何在不使用迭代的情况下从另一个 df 获取具有特定索引、列的值列表?

[英]How can I get list of values with specific index, column from another df without using iteration?

我有两个数据框 df1、df2。

df1=pd.DataFrame(columns=['name','yr'])
df1.name=['a','b','c','b','d','a']
df1.yr=[2017,2016,2017,2018,2018,2019]
df2=pd.DataFrame(index=[2016,2017,2018,2019],columns=['a','b','c','d'],data= np.random.randn(4,4))

我想要的是添加新列“z”,其中包含来自 df2 的值、对应的“名称”和“年份”。

使用 for 语句的迭代不是我的考虑。

*添加)不能使用“合并”,因为 df1 中的匹配数据在 df2 的索引和列中

使用DataFrame.lookup

df1['z'] = df2.lookup(df1['yr'], df1['name'])
print (df1)

  name    yr         z
0    a  2017 -0.578600
1    b  2016  0.997345
2    c  2017 -2.426679
3    b  2018 -0.866740
4    d  2018 -0.094709
5    a  2019  1.491390

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM