Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 用熊猫替换数据框中的值_Python_Python 3.x_Pandas_Dataframe_Data Science - Fatal编程技术网

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]
但是我不确定是否是最有效的方法。

您可以使用by
regex
和if-need删除最后的空格:

df.Item = df.Item.str.replace(r"\(.*\)","").str.strip()
print (df)
        Item
0     Banana
1  Chocolate
2      Apple
另一个更简单的解决方案包括:

如果需要,您可以使用by
regex
和删除最后的空白:

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('\([^\)]*\'),'')