如何将pandas列指定给其他列,如果为nan,如何指定默认值?

2024-06-10 16:32:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我有

df=

a
1
nan
3

我想要一些语法

df["b"] = df["a"] or 5

创造

a     b
1     1
nan   5
3     3

熊猫支持这样的东西吗

奖金:

每个索引/组/任何内容的不同默认值如何


Tags: or内容df语法nan奖金
3条回答

您可以使用np.where

df['b'] = np.where(df['a'].isna(), 5, df['a'])
print(df)

     a    b
0  1.0  1.0
1  NaN  5.0
2  3.0  3.0
import pandas as pd
import numpy as np


df = pd.DataFrame({"a": [1, np.nan, 3]})
df["b"] = df["a"].fillna(5)
print(df)
     a    b
0  1.0  1.0
1  NaN  5.0
2  3.0  3.0

通过挖掘the doc得到了标准的解决方案。不需要通过numpy

您可以为此使用applymap()函数,甚至factorize()函数

相关问题 更多 >