String 如何使用Python删除列数据帧中给定字符后的所有字符

String 如何使用Python删除列数据帧中给定字符后的所有字符,string,python-3.x,dataframe,replace,String,Python 3.x,Dataframe,Replace,例如: import pandas as pd import numpy as np data = {'state': ['Auckland', 'Otago (....)','Wellington','Dunedin','Hamilton'],'year': [2000, 2001, 2002, 2001,2002],'pop': [1.5, 1.7,3.6, 2.4, 2.9]} df = pd.DataFrame(data) 我想删除state列中字符串'('之后出现的所有内容 非常感

例如:

import pandas as pd
import numpy as np
data = {'state': ['Auckland', 'Otago (....)','Wellington','Dunedin','Hamilton'],'year': [2000, 2001, 2002, 2001,2002],'pop': [1.5, 1.7,3.6, 2.4, 2.9]}
df = pd.DataFrame(data) 
我想删除state列中字符串'('之后出现的所有内容

非常感谢你的帮助


萨米尔

我对熊猫了解不多,但在谷歌搜索一下,这里有一个代码可以处理您的情况:

import pandas as pd
import numpy as np
data = {'state': ['Auckland', 'Otago (....)','Wellington','Dunedin','Hamilton'],'year': [2000, 2001, 2002, 2001,2002],'pop': [1.5, 1.7,3.6, 2.4, 2.9]}
df = pd.DataFrame(data) 

for state in df.state:
    if "(" in state:
        row_num = df.loc[df['state']==state].index[0]
        df.at[row_num, 'state'] = state[:state.index("(")]

print(df.state)
以下是输出:

0      Auckland
1        Otago
2    Wellington
3       Dunedin
4      Hamilton
Name: state, dtype: object
该函数遍历
系列
中的所有值,并返回另一个
系列
,其中包含某个函数的结果。从那里可以在切片中使用该方法

import pandas as pd

data = {'state': ['Auckland', 'Otago (....)','Wellington','Dunedin','Hamilton'],'year': [2000, 2001, 2002, 2001,2002],'pop': [1.5, 1.7,3.6, 2.4, 2.9]}

df = pd.DataFrame(data)

df['state'] = df.state.map(lambda x: x[0: x.find('(') - 1] if '(' in x else x)

print(df)
收益率:

   pop       state  year
0  1.5    Auckland  2000
1  1.7       Otago  2001
2  3.6  Wellington  2002
3  2.4     Dunedin  2001
4  2.9    Hamilton  2002