заменить / заполнить значения для некоторых конкретных строк - PullRequest
0 голосов
/ 16 ноября 2018

df:

address        city
BlockOf13thSt  Treasure Isla
Lincoln        Presidio
Duboce Park    Unknown
Twin Peaks     Unknown
Bernal Heights NaN
Holly Courts   Unknown
Ocean Beach    NaN
Maiden Ln      NaN
Avenue N       NaN

выход

address city BlockOf13thSt Treasure Isla Lincoln Presidio Duboce Park San Francisco Twin Peaks San Francisco Bernal Heights San Francisco Holly Courts San Francisco Ocean Beach San Francisco Maiden Ln New York Avenue N New York

есть ли какой-нибудь синтаксис в пандах, таких как SQL (IN) ?? где адрес IN (Duboce Park, Твин Пикс, Бернал Хайтс, Холли Кортс / Оушен Бич) и замена / заполнение для «Сан-Франциско» и «Нью-Йорк»

спасибо

Ответы [ 3 ]

0 голосов
/ 16 ноября 2018

Сначала отфильтруйте ваш фрейм данных с необходимыми условиями, а затем заполните нулевые значения:

df[(df.address == 'Duboce Park') | (df.address == 'Twin Peaks') | (df.address =='Bernal Heights') | (df.address == 'Holly Courts') | (df.address == 'Ocean Beach')].fillna('San Francisco')

Оператор pipe | в пандах подобен разделителю OR в SQL.

Таким образом, для выше address NULL был заменен на San Francisco. Сделайте то же самое для другого адреса и замените NULL на New York.

Дайте мне знать, если это поможет.

0 голосов
/ 16 ноября 2018
import pandas as pd  
#Replace all those localities with 'San Francisco'. For this we use .isin() function
df.loc[df['address'].isin(pd.Series(['Duboce Park','Twin Peaks','Bernal Heights','Holly Courts','Ocean Beach'])),'city']='San Francisco'

#Replace all NaNs with 'New York' with fillna().
df = df.fillna('New York')

df
Out[47]: 
          address           city
0   BlockOf13thSt  Treasure Isla
1        Lincoln        Presidio
2     Duboce Park  San Francisco
3      Twin Peaks  San Francisco
4  Bernal Heights  San Francisco
5    Holly Courts  San Francisco
6     Ocean Beach  San Francisco
7       Maiden Ln       New York
8        Avenue N       New York
0 голосов
/ 16 ноября 2018

Панды df.fillna () должны сделать свое дело. Прочитайте документы: https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.fillna.html

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