Получить индекс из информационного кадра 1 в информационный кадр 2 - PullRequest
0 голосов
/ 29 мая 2018

У меня есть 2 фрейма данных

Фрейм данных 1

yearGrammy

Dataframe2

yearGrammy Song

Я хочу получить индексDataframe 1 в Dataframe 2 в качестве нового столбца, если годовойGrammy совпадает.Нужно ли объединять?

Ответы [ 2 ]

0 голосов
/ 29 мая 2018

Если annualGrammy в df1 уникален, вы также можете использовать map для создания нового столбца в df2.Использование данных, предоставленных RafaelC

import pandas as pd

dct = pd.Series(df1.index.values, df1.annualGrammy.values).to_dict()
df2['index'] = df2.annualGrammy.map(dct)
df2 = df2.dropna()

df2, теперь

   annualGrammy song index
0            11    a    i1
1            16    b    i6
2            17    c    i7
0 голосов
/ 29 мая 2018

Предположим, у вас есть

df1 = df1 = pd.DataFrame({"annualGrammy":[11,12,13,14,15,16,17,18]}, index=["i1","i2", "i3","i4","i5","i6","i7","i8"])
df2 = pd.DataFrame({"annualGrammy":[11,16,17,110,111], "song": ["a","b","c","d","e"]})

Так, что

df1.reset_index()

    annualGrammy    index
0   11              i1
1   12              i2
2   13              i3
3   14              i4
4   15              i5
5   16              i6
6   17              i7
7   18              i8

и

df2

    annualGrammy    song
0   11              a
1   16              b
2   17              c
3   110             d
4   111             e

. Вы можете объединить, используя how="left", чтобы отслеживать индексdf1:

pd.merge(df1, df2, on="annualGrammy", how="left")

    index   annualGrammy    song
0   i1      11              a
1   i2      12              NaN
2   i3      13              NaN
3   i4      14              NaN
4   i5      15              NaN
5   i6      16              b
6   i7      17              c
7   i8      18              NaN

Все NaN s - это значения, которые не совпадают в ag.Вы можете отбросить их, чтобы получить только значения, которые имеют значение

pd.merge(df1, df2, on="annualGrammy", how="left").dropna()

    annualGrammy    index   song
0   11              i1      a
5   16              i6      b
6   17              i7      c
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...