![](/img/trans.png)
[英]How to replace all non-NaN entries of a dataframe with 1 and all NaN with 0
[英]How to replace all non-NaN entries of a dataframe with a Series?
我知道您可以使用pandas.DataFrame.fillna
用系列替換所有空值,但是有沒有一種簡單的方法可以用系列替換所有非空值?
或者,我已經看到df.loc[~df.isnull()]
用單個值替換所有空值,但同樣 - 有沒有辦法傳入一個系列?
編輯:例如,假設我有一個名為code
的列的 DataFrame df
,其中包含一些空值和一些非空值。 然后說我有一個名為new_code
的系列, new_code
包含非空值。 我想用new_code
的值替換df['code']
所有非空值(其中非空值的數量等於new_code
的長度)。
您可以按照以下方式進行。
由於您沒有提供 df,我使用的是我自己的 df(顯示了輸入和輸出)。 'f' 是已創建的系列。
a = df.loc[~df['Age'].isnull()]
b = df.loc[~df['Age'].isnull()].index
f= pd.Series([i for i in range(1,12)], index=b)
df.loc[~df['Age'].isnull(),['Age']]=f
輸入
Country Age
0 USA NaN
1 EU 15.0
2 China 35.0
3 USA 45.0
4 EU NaN
5 China NaN
6 USA 28.0
7 EU 26.0
8 China 78.0
9 USA 65.0
10 EU 53.0
11 China 66.0
12 USA 32.0
13 EU NaN
14 China 14.0
F
1 1
2 2
3 3
6 4
7 5
8 6
9 7
10 8
11 9
12 10
14 11
輸出
Country Age
0 USA NaN
1 EU 1.0
2 China 2.0
3 USA 3.0
4 EU NaN
5 China NaN
6 USA 4.0
7 EU 5.0
8 China 6.0
9 USA 7.0
10 EU 8.0
11 China 9.0
12 USA 10.0
13 EU NaN
14 China 11.0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.