无法从带有Pandas的CSV标头中删除空格
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法从带有Pandas的CSV标头中删除空格相关的知识,希望对你有一定的参考价值。
我正在尝试重命名具有空格的csv中的标题。使用Pandas API参考中的这些行不起作用。标题仍然有空格而不是下划线。
import pandas as pd
df = pd.read_csv("my.csv",low_memory=False)
df.columns = df.columns.str.strip().str.lower().str.replace(' ', '_')
答案
尝试使用列表理解。
df.columns = [c.strip().lower().replace(' ', '_') for c in df.columns]
另一答案
尝试使用重命名?
df.rename(index=str, columns={"A space": "a", "B space ": "c"})
另一答案
我放弃了Pandas,只是在Python 2.7中使用了CSV模块。
import csv
import re
import tempfile
import sys
import os
if sys.version_info >= (3, 3):
from os import replace
elif sys.platform == "win32":
from osreplace import replace
else:
from os import rename as replace
newHeaderList = []
with tempfile.NamedTemporaryFile(dir='.', delete=False) as tmp,
open('myFile.txt', 'rb') as f:
r = csv.reader(f, delimiter = ' ')
w = csv.writer(tmp, delimiter = ' ', quoting=csv.QUOTE_NONNUMERIC)
header = next(r)
for h in header:
headerNoSpace = re.sub("s+", "_", h.strip())
newHeaderList.append(headerNoSpace)
w.writerow(newHeaderList)
for row in r:
w.writerow(row)
os.rename(tmp.name, new_text_filepath)
new_txt = csv.reader(open('newFile.txt', "rb"), delimiter = ' ')
out_csv = csv.writer(open('myFile.csv', 'wb'))
out_csv.writerows(new_txt)
以上是关于无法从带有Pandas的CSV标头中删除空格的主要内容,如果未能解决你的问题,请参考以下文章
使用 pandas.read_csv 读取带有空格的 CSV 文件作为千位分隔符
Python/有效的方法从每个 Pandas 数据框单元格中删除空格,其中包含类似对象的字符串
pandas使用read_csv函数随机从文件中读取N行数据pandas使用read_csv函数读取空格分割的文件(space)自定义设置sep参数