如何将pandas列分配给其他列,如果是nan则默认值?

时间:2020-11-05 15:50:41

标签: python pandas

我有

df =

a
1
nan
3

我想要一些语法

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

创建

a     b
1     1
nan   5
3     3

熊猫支持这样的东西吗?

奖金:

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

3 个答案:

答案 0 :(得分:2)

您可以使用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

答案 1 :(得分:2)

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。

答案 2 :(得分:-1)

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