python - Pandas 有条件创建新的数据框列

标签 python pandas if-statement dataframe multiple-columns

这个问题是 Pandas conditional creation of a series/dataframe column 的延伸。 如果我们有这个数据框:

    Col1       Col2
1    A          Z
2    B          Z           
3    B          X
4    C          Y
5    C          W

我们想做相当于:

if Col2 in ('Z','X') then Col3 = 'J' 
else if Col2 = 'Y' then Col3 = 'K'
else Col3 = {value of Col1}

我怎样才能做到这一点?

最佳答案

您可以使用locisin最后fillna :

df.loc[df.Col2.isin(['Z','X']), 'Col3'] = 'J'
df.loc[df.Col2 == 'Y', 'Col3'] = 'K'
df['Col3'] = df.Col3.fillna(df.Col1)
print (df)
  Col1 Col2 Col3
1    A    Z    J
2    B    Z    J
3    B    X    J
4    C    Y    K
5    C    W    C

关于python - Pandas 有条件创建新的数据框列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39226656/

相关文章:

mysql - sql中的简单If Else语句

python - 将新列添加到可变长度的数据框中

python - 正则表达式无法扩展以在 Python 中查找相似模式

python - 是否可以在每个 STDERR 前面加上给定的字符串

python - 将 '10yrs 5mon' 分类值转换为月份

python - Lambda + Apply 在 Pandas 中获取两个新列

javascript - 工作 jQuery 代码在条件内不起作用

python - 如何使用 python sdk 连接 bloomberg 终端?

python - 使用 pandas 将 Flask 应用程序部署到 Elastic Beanstalk

r - 拆分单元格中的值并添加到 R 中新创建的行