Pandas DataFrame字符串去空格操作无效问题求助
问题原因及解决方法
- 你用
iterrows()循环时,拿到的row是原DataFrame的副本,不是直接指向原数据的视图。所以你修改row['TeamName']只是改了这个临时副本的值,根本没影响到原summDataFrame,自然看不到变化,也不会报错。 - 后续代码能成功,大概率是因为那段代码没只改副本,要么是直接通过索引操作原数据,要么用了Pandas的向量化方法。
正确的处理方式
推荐:用Pandas向量化操作(效率高,代码简洁)
直接对整列调用str.replace,一步完成去空格:
summ['TeamName'] = summ['TeamName'].str.replace(" ", "")
非要用循环的话(不推荐,大数据量下很慢)
通过loc索引直接修改原DataFrame的对应位置:
for index, row in summ.iterrows(): summ.loc[index, 'TeamName'] = row['TeamName'].replace(" ", "")
内容的提问来源于stack exchange,提问作者sfarls
相关产品推荐
相关产品推荐

