Python 用熊猫替换数据框中的值
我得到这个数据帧:Python 用熊猫替换数据框中的值,python,python-3.x,pandas,dataframe,data-science,Python,Python 3.x,Pandas,Dataframe,Data Science,我得到这个数据帧: Item ................. 0 Banana (From Spain)... 1 Chocolate ............ 2 Apple (From USA) ..... ............ 我想通过删除括号来更改所有项的名称,最后 Item ..............
Item .................
0 Banana (From Spain)...
1 Chocolate ............
2 Apple (From USA) .....
............
我想通过删除括号来更改所有项的名称,最后
Item .................
0 Banana ...............
1 Chocolate ............
2 Apple ................
............
我想,我应该使用replace,但是数据太多了,所以我想使用类似的东西
import re
for i in dataframe.index:
if bool(re.search('.*\(.*\).*', dataframe.iloc[i]["Item"])):
dataframe.ix[i,"Item"] = dataframe.iloc[i]["Item"].split(" (")[0]
但是我不确定是否是最有效的方法。您可以使用byregex
和if-need删除最后的空格:
df.Item = df.Item.str.replace(r"\(.*\)","").str.strip()
print (df)
Item
0 Banana
1 Chocolate
2 Apple
另一个更简单的解决方案包括:
如果需要,您可以使用byregex
和删除最后的空白:
df.Item = df.Item.str.replace(r"\(.*\)","").str.strip()
print (df)
Item
0 Banana
1 Chocolate
2 Apple
另一个更简单的解决方案包括:
这就是诀窍:
df.Item = df.Item.apply(lambda x: x.split(" (")[0])
这就是诀窍:
df.Item = df.Item.apply(lambda x: x.split(" (")[0])
试试这个
df.Item=df.Item.str.replace('\([^\)]*\'),'')
试试这个df.Item=df.Item.str.replace('\([^\)]*\'),'')