Заполнение столбца значениями из другого фрейма данных - PullRequest
0 голосов
/ 22 марта 2020

Я хочу заполнить столбец df2 (~ 100.000 строк) значениями из того же столбца df (~ 1.000.000 строк). У Df часто несколько раз одна и та же строка, но с неверными данными, поэтому я всегда хочу взять первое значение моего столбца 'C'.

df = pd.DataFrame([[100, 1, 2], [100, 3, 4], [100, 5, 6], [101, 7, 8], [101, 9, 10]],
                  columns=['A', 'B', 'C'])

df2=pd.DataFrame([[100,0],[101,0]], columns=['A', 'C'])

for i in range(0,len(df2.index)):
    #My Question:
    df2[i,'C']=first value of 'C' column of df where the 'A' column is the same of both dataframes. E.g. the first value for 100 would be 2 and then the first value for 101 would be 8

В итоге мой вывод должен выглядеть следующим образом:

df2=pd.DataFrame([[100,2],[101,8]], columns=['A', 'C'])

1 Ответ

1 голос
/ 22 марта 2020

Вы можете попробовать это:

df2['C'] = df.groupby('A')['C'].first().values

Что даст вам:

    A   C
0   100 2
1   101 8

first() возвращает первое значение каждой группы.
Затем вы хотите присвоить значения столбцу df2, к сожалению, вы не можете назначить результат напрямую следующим образом:
df2['C'] = df.groupby('A')['C'].first(). Поскольку приведенная выше строка приведет к:

    A   C
0   100 NaN
1   101 NaN

(Вы можете прочитать о причине здесь: Добавление нового столбца к pandas Результатом DataFrame будет NaN )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...