基于多个字符串条件替换pandas中的字符串列[重复]

dba5bblo  于 2023-08-01  发布在  其他
关注(0)|答案(2)|浏览(114)

此问题已在此处有答案

Pandas conditional creation of a series/dataframe column(13个回答)
12天前关闭。
我有一个数据框架,其中一列包含国家列表。我基本上想把它转换成一个新的列,如果行中包含United States或波多黎各,则该列中会显示“Inside US”,否则会显示“Outside US”。我怎么能在Pandas中做到这一点?

预期输入:

countries
United States, Japan
China
Brazil, South Africa
Puerto Rico, Spain
United States, Vietnam
Madagascar

字符串

预期输出:

countries
Inside US
Outside US
Outside US
Inside US
Inside US
Outside US

**我的尝试:**下面的代码给了我一个真或假的序列,我很难使用..也不确定这是否是最好的开始方式。

df['countries'].str.contains('United States|Puerto Rico')

qv7cva1a

qv7cva1a1#

使用np.where子句:

df['country_stat'] = np.where(df['countries'].str
                              .contains('United States|Puerto Rico'), 
                              'Inside US', 'Outside US')

个字符

mitkmikd

mitkmikd2#

这里有一个简单的方法,它可以做到这一点,并逐个检查df行并应用该方法。

def check_inside_us(country):
            if country in ['United States', 'Puerto Rico']:
                return 'Inside US'
            else:
                return 'Outside US'
        
        df1['countries'] = df1['countries'].apply(check_inside_us)

字符串

相关问题