通过 For 循环用字典值填充空行 Pandas
Filling Empty Rows with Dictionary Values via For Loop Pandas
我有一本看起来像这样的字典:
my_dict = {2078:'T20',2153:'T20',2223:'T21',2219:'T21'}
我的数据框:
Date Code Fleet KM
2021-20-03 2078 T20 20
2021-21-03 2078 NaN 22
2021-21-03 2153 T20 23
2021-21-03 2153 NaN 23
2021-22-03 2223 NaN 28
2021-22-03 2223 NaN 30
2021-22-03 2219 T21 23
2021-23-03 2219 NaN 23
我想使用字典的值来填充我 df 中 Fleet 列中的空行。
所以我写了代码:
for index, row in df.iterrows():
if (pd.isnull(row['Fleet'])):
row['Fleet']= my_dict.row['Fleet']
但是,当我检查 df.info() 时,我可以看到该代码即使在运行时也没有应用。
有人可以告诉我我做错了什么吗?
使用Series.map
by dictionary and raplace missing values by Series.fillna
:
df['Fleet'] = df['Fleet'].fillna(df['Code'].map(my_dict))
df['Fleet'] = df['Fleet'].combine_first(df['Code'].map(my_dict))
我有一本看起来像这样的字典:
my_dict = {2078:'T20',2153:'T20',2223:'T21',2219:'T21'}
我的数据框:
Date Code Fleet KM
2021-20-03 2078 T20 20
2021-21-03 2078 NaN 22
2021-21-03 2153 T20 23
2021-21-03 2153 NaN 23
2021-22-03 2223 NaN 28
2021-22-03 2223 NaN 30
2021-22-03 2219 T21 23
2021-23-03 2219 NaN 23
我想使用字典的值来填充我 df 中 Fleet 列中的空行。
所以我写了代码:
for index, row in df.iterrows():
if (pd.isnull(row['Fleet'])):
row['Fleet']= my_dict.row['Fleet']
但是,当我检查 df.info() 时,我可以看到该代码即使在运行时也没有应用。 有人可以告诉我我做错了什么吗?
使用Series.map
by dictionary and raplace missing values by Series.fillna
:
df['Fleet'] = df['Fleet'].fillna(df['Code'].map(my_dict))
df['Fleet'] = df['Fleet'].combine_first(df['Code'].map(my_dict))