1

东风:

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

Pandas 中是否有 SQL (IN) 之类的语法?地址 IN(Duboce Park、Twin Peaks、Bernal Heights、Holly Courts/Ocean Beach)并替换/填充“旧金山”和“纽约”

谢谢

4

3 回答 3

1

首先使用所需条件过滤您的数据框,然后填充空值:

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

|pandas 中的管道运算OR符类似于SQL.

因此,对于上面address的 NULL 被替换为San Francisco. 对其他地址执行相同操作,并将 NULL 替换为New York.

让我知道这是否有帮助。

于 2018-11-16T13:29:41.670 回答
0

Pandas df.fillna() 应该可以解决问题。阅读文档:https ://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.fillna.html

于 2018-11-16T13:28:05.747 回答
0
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
于 2018-11-16T14:35:29.523 回答