簡體   English   中英

如何用系列替換數據幀的所有非 NaN 條目?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM