Как я могу получить список значений с определенным индексом, столбцом из другого df без использования итерации? - PullRequest
0 голосов
/ 09 октября 2019

У меня есть два кадра данных 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, соответствующими 'name' и 'year'.

Использование итераций для оператора не мое рассмотрение.

* добавлено) 'Слияние' не может быть использовано, потому что совпадающие данные в df1 находятся в индексе и столбце df2

1 Ответ

0 голосов
/ 09 октября 2019

Использование 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...