Как присвоить значения из одного столбца другому с предупреждением в Pandas - PullRequest
1 голос
/ 10 июля 2019

У меня есть панда DF с 56 столбцами.2 из этих столбцов (X и Y) пусты, и я хотел бы дублировать значения, хранящиеся в 2 разных столбцах в одном и том же DF.Прямо сейчас мне удалось это сделать, но я получил предупреждение:

Значение пытается быть установлено для копии среза из DataFrame.Попробуйте использовать .loc [row_indexer, col_indexer] = значение вместо

Я также пробовал эту версию, но все равно получаю предупреждение.Вот мой синтаксис до сих пор:

subset = df[(df.Longitude.isnull()) & (df.Latitude.isnull())]
subset.Longitude = subset.x2
subset.Latitude = subset.y2

Есть идеи о том, как сделать это без получения предупреждения?Благодаря.

1 Ответ

3 голосов
/ 10 июля 2019

fillna

Вот как ты должен это делать. Передайте словарь в fillna, указав, чем заполнять каждый столбец. Ключи словаря сопоставляются с именами столбцов. Итак, ниже, заполните отсутствующие значения столбца 'Longitude' соответствующими значениями из df.x2.

df.fillna({'Longitude': df.x2, 'Latitude': df.y2})

loc

Но чтобы ответить на ваш вопрос и исключить любые другие вопросы.

mask = df.Longitude.isna() & df.Latitude.isna()
df.loc[mask, ['Longitude', 'Latitude']] = df.loc[mask, ['x2', 'y2']].to_numpy()

Не супер полезно

Потому что большинству людей это трудно читать

mask = df.Longitude.isna() & df.Latitude.isna()
df.loc[mask, 'Longitude'], df.loc[mask, 'Latitude'] = map(df.get, ['x2', 'y2'])

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