如果行在熊猫中包含特定字符串,如何跳过拆分?

时间:2020-05-25 10:35:17

标签: python pandas

我有一个包含州和国家/地区名称的列:

Name   Region       Value_1 etc.
Apple  Penn State    5641561
Apple  Boston State   21515151
Apple  United States  5545645
etc.

我想在空格(“”)后面加上字符串,但我想保持美国原样。

例如:

Name   Region       Value_1 etc.
Apple  Penn          5641561
Apple  Boston         21515151
Apple  United States  5545645
etc.

我该怎么做? 我正在使用以下代码进行拆分: df['Region'] = df['Region'].str.split(' ').str[0]

3 个答案:

答案 0 :(得分:1)

IIUC,您可以使用Series.str.replace用替换字符串替换系列中模式的出现:

df['Region'] = df['Region'].str.replace(r'(\sState)\b', '')

结果:

# print(df)

    Name         Region   Value_1
0  Apple           Penn   5641561
1  Apple         Boston  21515151
2  Apple  United States   5545645

答案 1 :(得分:0)

尝试一下:

df = pd.DataFrame({'Name': ['Apple', 'Apple', 'Apple'], 'Region': ['Penn State', 'Boston State', 'United States']})
df['Region'] = df['Region'].apply(lambda x: x.replace('State', '') if x.split()[-1].strip() == 'State' else x)

输出:


    Name    Region
0   Apple   Penn
1   Apple   Boston
2   Apple   United States

答案 2 :(得分:0)

使用np.where()的替代方法:

### Create DataFrame
df = pd.DataFrame({
'Name': ['Apple', 'Apple', 'Apple'],
'Region': ['Penn State', 'Boston State', 'United States'],
'Value_1': [5641561, 21515151, 554564]
})

### Using np.where()
df['Region'] = df['Region'].where(df['Region'].str.contains('United States'), 
                            df['Region'].str.split(" ").str[0])

### Output
print(df)

    Name         Region   Value_1
0  Apple           Penn   5641561
1  Apple         Boston  21515151
2  Apple  United States    554564
相关问题