如何在使用readcsv时管理包含多个空格的列名



我使用同一段代码来导入多个数据帧。通常具有相同的列名和不同的数据。但是,有时它们在列的名称前后有不同的空格。

df = pd.read_csv(
file_path,
delimiter="|",
low_memory=True,
dtype=schema,
usecols=schema.keys(),
)

文件的模式在另一个文件中:

file_schema = {
" Age ": str,
" Name ": str,
" Country ": str,}

对于其他一些情况,名称前后没有空格:

file_schema = {
"Age": str,
"Name": str,
"Country": str,}

目前只有一个模式,如果列名称前的空格中没有匹配项,则会出现与usecols相关的错误。我想知道是否有一种方法可以在一个模式文件中写入列的名称,并且无论名称前后有多少空格,它都能工作?

我认为应该可以将列名与匹配

pd.read_csv(..., usecols=lambda x: x.strip() in schema.keys())

然后用剥离

df.columns = df.columns.str.strip()

或者更好地尝试用显式地传递它们

pd.read_csv(..., header=0, names=schema.keys())

如果您知道schema中声明的所有列都将按顺序在文件中。

不确定dtype=schema是否会立即引发下一个问题,尽管

相关内容

最新更新