Панды - копирование одного столбца в другой без эффективной перезаписи - PullRequest
0 голосов
/ 27 августа 2018

У меня есть столбцы A и B, где столбец A редко содержит данные, а столбец B полностью заполнен. Я хочу скопировать столбец B в столбец A и всегда сохранять любое значение, которое столбец A имеет над столбцом B.

Длина моего фрейма данных составляет около 1,5 миллиона, поэтому df.iterrows () - это решение, однако оно будет очень трудоемким. Есть ли какая-нибудь оптимизированная функция панд или трюк, чтобы сделать это максимально эффективно?

Ответы [ 2 ]

0 голосов
/ 27 августа 2018

Я бы использовал .loc, чтобы сделать это

df.loc[df['A'].isnull(), 'A'] = df['B']

Это читается так: находится там, где столбец «A» равен нулю, а столбец «A» равен столбцу «B».

0 голосов
/ 27 августа 2018

Вы можете попробовать что-то вроде

df["A"][df["A"].isna()] = df["B"][df["A"].isna()]

Редактировать: комментатор указал, что в pandas уже есть метод именно для этой проблемы, поэтому используйте его вместо этого.

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