替换/填充某些特定行的na值

2024-05-23 18:07:57 发布

您现在位置:Python中文网/ 问答频道 /正文

数据框:

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)的语法?? 地址在(Duboce Park,Twin Peaks,Bernal Heights,Holly Courts/Ocean Beach),并将“旧金山”和“纽约”替换为/fillna

谢谢


Tags: parkaddressnantwinunknownsanoceanpeaks
3条回答

首先用所需条件筛选数据帧,然后填充空值:

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中的管道|运算符类似于SQL中的OR分隔符。在

因此,对于上面的address,NULL被San Francisco替换。 对其他地址也一样,并用New York替换NULL。在

如果有帮助,请告诉我。在

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

相关问题 更多 >