[英]How to replace nan values of a column based on certain values of other column
我有兩列,col1指受教育程度,col2指他們的工作。 col2具有一些nan值,因此我想根據列1的值替換此nan值。例如,如果col1 ='bachelor',則col2必須為='teacher';如果col1 ='highschool',則col2 ='actor '..依此類推,我有7個不同的col1值。
我試圖創建一個像這樣的函數:
def rep_nan(x):
if x['col1']=='bachelor':
x['col2']='teacher'
elif x['col1']=='blabla':
x['col2']='blabla'
.....
elif x['col1']='high school':
x['col2']='actor'
然后我將其應用於數據集:
df.apply(rep_nan,axis=1)
但結果是無列
錯誤在哪里? 或者我該怎么做?
您可以在此處制作字典:
rep_nan = {
'bachelor': 'tacher',
'blabla': 'blabla',
'high school': 'actor'
}
然后我們可以將nan值替換為:
df.loc[df['col2'].isnull(), 'col2'] = df[df['col2'].isnull()]['col1'].replace(rep_nan)
例如:
>>> df
col1 col2
0 bachelor None
1 bachelor clown
2 blabla None
3 high school None
>>> df.loc[df['col2'].isnull(), 'col2'] = df[df['col2'].isnull()]['col1'].replace(rep_nan)
>>> df
col1 col2
0 bachelor tacher
1 bachelor clown
2 blabla blabla
3 high school actor
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.