从Excel文件读取数据时遇到问题。 Excel文件包含带有Unicode字符的列名。
由于某些自动化原因,我需要将 usecols 参数传递给pandas.read_excel函数。
问题在于,当我不使用 usecols 参数时,数据加载不会出错。
代码如下:
{
'servers':
{
'unix_servers':
{
'server_group':
{
'server_f': '10.0.0.6',
'server_e': '10.0.0.5'
},
'server_b': '10.0.0.2',
'server_a': '10.0.0.1'
},
'windows_servers':
{
'server_c': '10.0.0.3',
'server_d': '10.0.0.4'
}
}
}
如果我使用usecols:
import pandas as pd
df = pd.read_excel(file)
df.colums
Index([u'col1', u'col2', u'col3', u'col with unicode à', u'col4'], dtype='object')
我收到以下错误:
COLUMNS = ['col1', 'col2', 'col with unicode à']
df = pd.read_excel(file, usecols = COLUMNS)
使用ValueError: Usecols do not match columns, columns expected but not found: ['col with unicode \xc3\xa0']
作为read_excel的参数不能解决该问题,并且还可以对COLUMNS元素进行编码。
编辑:这是完整的错误窗口。
encoding = 'utf-8'
答案 0 :(得分:3)
此方法对于选择excel列非常有效:
使用数字的第一种情况,“ A”列= 0,“ B”列= 1,依此类推。
df = pd.read_excel("filename.xlsx",usecols= range(0,5))
使用字母的第二种情况:
df = pd.read_excel("filename.xlsx",usecols= "A, C, E:J")
答案 1 :(得分:0)
首先阅读
之类的列df = pd.read_excel(file, usecols="A:D")
其中A:D是您要读取的excel中的列范围,然后像这样重命名您的列
df.columns = ['col1', 'col2', 'col3', 'col4']
然后相应地访问列
答案 2 :(得分:0)
如果要按特定的列名读取excel文件,请使用“ usecol”遵循以下示例代码:
> df = pd.read_excel("filename.xlsx",usecols=["col_name1", "col_name2", "col_name3"])
> print(df)