删除python中分隔符(括号)后的文本

2024-07-08 07:51:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图删除“(“delimiter,firts,我想计算至少有一行的行”)之后的文本,然后删除这个分隔符之后的文本,包括分隔符

包含文本的列是“国家”,如下所示:

Micronesia (Federated States of)

我希望这样的结果:

Micronesia

这是我试图计算的行数

energy['Country'].value_counts()[['(']].sum

它返回了这个错误:

"None of [Index(['('], dtype='object')] are in the [index]"

为了删除分隔符后的文本,我尝试了以下操作:

energy['Country'] = energy['Country'].split("(", 1)

它返回了这个错误:

AttributeError: 'Series' object has no attribute 'split'

我怎样才能解决这个问题


Tags: of文本objectvalue错误国家countryenergy
3条回答

您可以对列应用str.split,然后使用.str[0]获取第一个元素,并使用str.strip删除前导/尾随空格:

df = pd.DataFrame({'country': ['Micronesia (Federated States of)']})

df['country'] = df['country'].str.split('(').str[0].str.strip()
df

输出:

      country
0  Micronesia

和另一个str.extract选项(不太详细):

df['country'] = df['country'].str.extract('(.*)\s*\(')

试试这个。它将在每一行而不是每一列上执行此操作

for index,row in reviews.iterrows():
    print(energy['Country'].split("(")[0])

如果要在特定行上执行此操作,可以执行以下操作

print(energy['Country'][0].split("(")[0])

.str.replace与正则表达式一起使用

Ex:

energy['Country'] = energy['Country'].str.replace(r"(\(.*\))", "")

相关问题 更多 >

    热门问题