DataFrame中的.replace()不会替换

时间:2018-05-28 11:47:32

标签: python pandas

我正在尝试从DataFrame中的列中删除;,但是当我使用.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;

2 个答案:

答案 0 :(得分:6)

不要使用for循环。代替:

excel_file['dateTime'] = excel_file['dateTime'].str.replace(';', ' ')

这个答案隐含的事实是str.replace()返回一个新字符串,而不是原位修改原始字符串。这是原始代码中的功能缺陷。但是在没有for循环的情况下这样做会快很多倍。

参考:https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.str.replace.html

答案 1 :(得分:0)

如果您对某些字符串使用for i in excel_file['dateTime']: excel_file['dateTime'][i] = i.replace(';', ' ') # probably ,则将返回替换为新字符串。 所以你需要:

$('[data-fancybox]').fancybox({
  idleTime: 0,
  afterShow: function(instance, current) {
    current.$content.append('<p class="fancybox-extra"><button>Click me</button></p>');
  }
});

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