我使用同一段代码来导入多个数据帧。通常具有相同的列名和不同的数据。但是,有时它们在列的名称前后有不同的空格。
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
是否会立即引发下一个问题,尽管