Pandas 文件导入 if 语句问题
Pandas file import if statement issue
我的 if 语句在尝试将我的列表导入 pandas DF 时遇到问题。
file_extension[1] 变量从输入文件中获取文件名,并根据文件扩展名尝试输入数据库。我正在测试的文件有一个 csv 扩展名,我可以从我添加的打印语句中看到这一点。但是,我不断收到一条错误消息,它试图在 read excel if 语句下导入 csv 文件,并且显然在给定它的 CSV 文件的情况下不起作用。
关于为什么会发生这种情况的任何想法?鉴于扩展名是 csv,它应该将其导入为 csv...
仅供参考,这是我收到的错误消息 - ValueError:无法确定 Excel 文件格式,您必须手动指定引擎。
代码摘录如下:
file_extension = filename.split(".", 1)
print(file_extension[1])
if file_extension[1].lower() == 'tsv':
df = pd.read_csv(filename, sep='\t', dtype={'Account Code': 'string', 'Net': 'float'},
low_memory=False) # import TSV
elif file_extension[1].lower() == 'xlsx' or 'xls' or 'xlsm':
df = pd.read_excel(filename, sheet_name=0, na_filter=False, dtype={'Account Code': 'string', 'Net': 'float'})
print('Imported as excel')
elif file_extension[1].lower() == 'csv':
df = pd.read_csv(filename, sep=',', dtype={'Account Code': 'string', 'Net': 'float'}, low_memory=False)
else:
print('File type not supported')
提前感谢您的帮助!
你在 elif 语句中的条件是错误的。你应该更新行
elif file_extension[1].lower() == 'xlsx' or 'xls' or 'xlsm':
和
elif file_extension[1].lower() in ('xlsx', 'xls' , 'xlsm'):
我的 if 语句在尝试将我的列表导入 pandas DF 时遇到问题。
file_extension[1] 变量从输入文件中获取文件名,并根据文件扩展名尝试输入数据库。我正在测试的文件有一个 csv 扩展名,我可以从我添加的打印语句中看到这一点。但是,我不断收到一条错误消息,它试图在 read excel if 语句下导入 csv 文件,并且显然在给定它的 CSV 文件的情况下不起作用。 关于为什么会发生这种情况的任何想法?鉴于扩展名是 csv,它应该将其导入为 csv...
仅供参考,这是我收到的错误消息 - ValueError:无法确定 Excel 文件格式,您必须手动指定引擎。
代码摘录如下:
file_extension = filename.split(".", 1)
print(file_extension[1])
if file_extension[1].lower() == 'tsv':
df = pd.read_csv(filename, sep='\t', dtype={'Account Code': 'string', 'Net': 'float'},
low_memory=False) # import TSV
elif file_extension[1].lower() == 'xlsx' or 'xls' or 'xlsm':
df = pd.read_excel(filename, sheet_name=0, na_filter=False, dtype={'Account Code': 'string', 'Net': 'float'})
print('Imported as excel')
elif file_extension[1].lower() == 'csv':
df = pd.read_csv(filename, sep=',', dtype={'Account Code': 'string', 'Net': 'float'}, low_memory=False)
else:
print('File type not supported')
提前感谢您的帮助!
你在 elif 语句中的条件是错误的。你应该更新行
elif file_extension[1].lower() == 'xlsx' or 'xls' or 'xlsm':
和
elif file_extension[1].lower() in ('xlsx', 'xls' , 'xlsm'):