【发布时间】:2020-03-18 00:08:11
【问题描述】:
我有以下代码来创建一个列,其中包含美国和加拿大的已清理邮政编码
df = pd.read_csv(file1)
usa = df['Region'] == 'USA'
canada = df['Region'] == 'Canada'
df.loc[usa, 'ZipCleaned'] = df.loc[usa, 'Zip'].str.slice(stop=5)
df.loc[canada, 'ZipCleaned'] = df.loc[canada, 'Zip'].str.replace(' |-','')
问题在于,某些以“美国”作为国家/地区的行在数据集中包含加拿大邮政编码。因此,上面的美国逻辑被应用于加拿大邮政编码。
我尝试了下面的编辑代码以及上面的代码,并尝试了一个省(“BC”)以防止在这种情况下应用美国逻辑,但它不起作用
usa = df['Region'] == 'USA' and df['Ship To State'] != 'BC'
【问题讨论】:
-
我希望创建一个包含所有省份的列表,这样如果国家是美国但省份是加拿大,则不会应用美国逻辑。
标签: python pandas conditional-statements data-cleaning