关于另一列的熊猫填充方法

时间:2020-08-03 15:40:22

标签: pandas dataframe data-science

我的数据集中有两列。一个是,另一个是城市。状态列中没有NaN值。但是在“城市”列中,存在太多的NaN值。

假设我有一个状态数据点的值是“华盛顿”,而在城市的同一行NaN中。我想用NaN

填充华盛顿州的所有Seattle city 个值

我该怎么做?

2 个答案:

答案 0 :(得分:0)

假设您的数据集名称为df

您需要做的第一件事是找到具有状态的数据为华盛顿,并使用fillna()方法填充数据并将其存储到某个变量中(比方说)

fill= df.loc[df['state']=='Washington'].fillna(method='ffill')

下一步,您将再次在原始数据框中使用fillna()方法,将所有具有 state 的值填充为华盛顿

df.fillna(value=fill)

希望这个答案有帮助:}

答案 1 :(得分:0)

假设df

    STATE   CITY
0  StateA  CityA
1  StateB  CityB
2  StateA    NaN
3  StateB    NaN

根据默认的州/市填充df

mapping = {"StateA": "city of state A","StateB": "city of state B"} #state default city mapping
df['CITY'] = df['STATE'].combine(df['CITY'], lambda state,city :  mapping[state] if pd.isnull(city) else city)

输出:

    STATE             CITY
0  StateA            CityA
1  StateB            CityB
2  StateA  city of state A
3  StateB  city of state B