根据 if 和现有列在 pandas 中创建新列
creating new column in pandas based on if and existing column
我找到了这个问题的不同答案,但是 none 从现有列中提取数据。
假设我有 DataFrame
purchase=
{'date':['11/03/2021','12/03/2021','14/03/2021','11/03/2021'],
'price':[300, 400,200, 200],
'currency':['eur', 'usd','usd','usd'],
'qty':[200, 300, 400, 500],
'salesmanA':['Jack', 'x', "Mike", 'x'],
'salesmanB':['x', 'John', "x", 'David']}
df=pd.DataFrame(purchase)
我想设置一个新列 df['salessup'] 如果它的值不是 'x',它应该等于 SalesmanA,如果它是 x 到 salesmanB
新列应该像 ['salessup']=['Jack','John','Mike','David']
提前谢谢你。
尝试np.where
df['out'] = np.where(df.salesmanA=='x',df.salesmanB,df.salesmanA)
df
Out[450]:
date price currency qty salesmanA salesmanB out
0 11/03/2021 300 eur 200 Jack x Jack
1 12/03/2021 400 usd 300 x John John
2 14/03/2021 200 usd 400 Mike x Mike
3 11/03/2021 200 usd 500 x David David
我找到了这个问题的不同答案,但是 none 从现有列中提取数据。 假设我有 DataFrame
purchase=
{'date':['11/03/2021','12/03/2021','14/03/2021','11/03/2021'],
'price':[300, 400,200, 200],
'currency':['eur', 'usd','usd','usd'],
'qty':[200, 300, 400, 500],
'salesmanA':['Jack', 'x', "Mike", 'x'],
'salesmanB':['x', 'John', "x", 'David']}
df=pd.DataFrame(purchase)
我想设置一个新列 df['salessup'] 如果它的值不是 'x',它应该等于 SalesmanA,如果它是 x 到 salesmanB 新列应该像 ['salessup']=['Jack','John','Mike','David'] 提前谢谢你。
尝试np.where
df['out'] = np.where(df.salesmanA=='x',df.salesmanB,df.salesmanA)
df
Out[450]:
date price currency qty salesmanA salesmanB out
0 11/03/2021 300 eur 200 Jack x Jack
1 12/03/2021 400 usd 300 x John John
2 14/03/2021 200 usd 400 Mike x Mike
3 11/03/2021 200 usd 500 x David David