仅在包含列某些元素的行上为pandas数据框中的列创建值

时间:2020-06-20 04:46:37

标签: pandas

df = pd.DataFrame({'x':['a','a','b','b'], 'y':[1,2,3,4]})

如何创建列z等于y*2但仅对列a中的x元素有效的列?

这是我要实现的目标:

   x  y  z
0  a  1  2
1  a  2  4
2  b  3  na
3  b  4  na

1 个答案:

答案 0 :(得分:0)

#using list comprehension with if else statements
df['z']=[y*2 if x=='a' else 'na' for x,y in zip(df['x'],df['y']) ]