我想删除包含“County, Texas”的数据框中字符串左侧第二个逗号后的所有文本。例如,
之前:
- “德克萨斯州林肯县威尔伯银行的 jack ·史密斯”
- “ jack ·史密斯,银行,信贷,银行,威尔伯,德克萨斯州林肯县”
- “Jack Smith, Bank, Union, Credit, Bank, Wilber, Lincoln County, Texas, Branch, Landing, Services”
- “ jack ·史密斯,银行,信贷,银行,威尔伯,分行,登陆,服务”
之后:
- “ jack ·史密斯,银行”
- “ jack ·史密斯,银行”
- “ jack ·史密斯,银行,工会”
- “ jack ·史密斯,银行,信贷,银行,威尔伯,分行,登陆,服务”
感谢您的帮助!
最佳答案
使用mask
和str.contains()
对具有指定条件的行进行操作,然后使用如下操作:.str.split (', ').str[0:2].agg(', '.join))
:
df['Col'] = df['Col'].mask(df['Col'].str.contains('County, Texas'),
df['Col'].str.split(', ').str[0:2].agg(', '.join))
完整代码:
import pandas as pd
df = pd.DataFrame({'Col': {0: 'Jack Smith, Bank, Wilber, Lincoln County, Texas',
1: 'Jack Smith, Union, Credit, Bank, Wilber, Lincoln County, Texas',
2: 'Jack Smith, Union, Credit, Bank, Wilber, Lincoln County, Texas, Branch, Landing, Services',
3: 'Jack Smith, Union, Credit, Bank, Wilber, Branch, Landing, Services'}})
df['Col'] = df['Col'].mask(df['Col'].str.contains('County, Texas'),
df['Col'].str.split(', ').str[0:2].agg(', '.join))
df
Out[1]:
Col
0 Jack Smith, Bank
1 Jack Smith, Union
2 Jack Smith, Union
3 Jack Smith, Union, Credit, Bank, Wilber, Branc...
根据更新的问题,您可以使用 np.select
:
import pandas as pd
df = pd.DataFrame({'Col': {0: 'Jack Smith, Bank, Wilber, Lincoln County, Texas',
1: 'Jack Smith, Bank, Credit, Bank, Wilber, Lincoln County, Texas',
2: 'Jack Smith, Bank, Union, Credit, Bank, Wilber, Lincoln County, Texas, Branch, Landing, Services',
3: 'Jack Smith, Bank, Credit, Bank, Wilber, Branch, Landing, Services'}})
df['Col'] = np.select([df['Col'].str.contains('County, Texas') & ~df['Col'].str.contains('Union'),
df['Col'].str.contains('County, Texas') & df['Col'].str.contains('Union')],
[df['Col'].str.split(', ').str[0:2].agg(', '.join),
df['Col'].str.split(', ').str[0:3].agg(', '.join)],
df['Col'])
df
Out[2]:
Col
0 Jack Smith, Bank
1 Jack Smith, Bank
2 Jack Smith, Bank, Union
3 Jack Smith, Bank, Credit, Bank, Wilber, Branch...
关于Python:如何删除字符串左侧第二个逗号后的所有文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64722864/