如何根据条件创建新列?

时间:2021-04-23 01:57:25

标签: python pandas

谢谢你先回答。如果条件为0,我想将地址和邮政编码合并,如果条件为1,则将地址和邮政编码合并为1。我尝试了以下方法,但没有得到想要的结果。请问是不是数据类型有问题。请多多指教。

import pandas as pd
import numpy as np
data = pd.read_csv('./address.csv')
data['full address'] = np.where(data['condition']='0', data['address']+'-'+data['postcode'], data['address']+'-'+data['postcode']+'-'+data['condition'])

输出

<块引用>

语法错误:关键字不能是表达式

预期输出

expected output

1 个答案:

答案 0 :(得分:0)

正如 @quang-hoang 在评论中指出的那样,语法不正确。此外,如果列数据类型为 int,则从 0 中删除单引号。您需要 == 来检查相等性。

请注意,当 np.where 不等于 0 时,编写的 data['address']+'-'+data['postcode']+'-'+data['condition'] 函数也将输出 data['condition']。if-then-else 子句必不可少。

import pandas as pd
import numpy as np
data = pd.read_csv('./address.csv')
data['full address'] = np.where(
    data['condition']== 0, 
    data['address']+'-'+data['postcode'], 
    data['address']+'-'+data['postcode']+'-'+data['condition']
    )