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