Python 数据帧中的.replace()不替换

Python 数据帧中的.replace()不替换,python,pandas,Python,Pandas,我正在尝试删除来自数据帧中的列,但当我使用.replace(“;”,“)方法时,它不会替换半列,我是这样做的: for i in excel_file['dateTime']: i.replace(';', ' ') 这就是我的'dateTime'列的外观: 11-06-18; 18-06-18; 18-09-18; 14-06-18; 20-06-18; 13-06-18; 21-06-18; 19-06-18; 19-06-18; 20-06-18; 11-06-18; 22-06

我正在尝试删除
来自数据帧中的列,但当我使用
.replace(“;”,“)
方法时,它不会替换半列,我是这样做的:

for i in excel_file['dateTime']:
    i.replace(';', ' ')
这就是我的
'dateTime'
列的外观:

11-06-18;
18-06-18;
18-09-18;
14-06-18;
20-06-18;
13-06-18;
21-06-18;
19-06-18;
19-06-18;
20-06-18;
11-06-18;
22-06-18;

不要对循环使用
。相反:

excel_file['dateTime'] = excel_file['dateTime'].str.replace(';', ' ')
这个答案隐含的事实是
str.replace()
返回一个新字符串,而不是修改原来的字符串。这就是您原始代码中的功能缺陷。但是,如果不使用
for
循环,则速度将快很多倍

Ref:

如果对某些字符串使用
.replace(“;”,”)
,它将返回带有替换的新字符串。 因此,您需要:

for i in excel_file['dateTime']:
    excel_file['dateTime'][i] = i.replace(';', ' ')  # probably

如果你需要更换的话。但是@john zwinck也为您的案例提出了更好的解决方案

也许删除最后一个字符更容易<代码>i=i[:-1]