繁体   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