![](/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.