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]