为什么Pandas Imports .CSV作为DataFrame,而Excel则为DICE?

发布于 2025-02-06 15:45:20 字数 468 浏览 1 评论 0原文

我正在尝试将CS​​V和Excel(XLSX)导入处理,合并,计算...但是,当使用PANDAS导入每种情况时,我会得到不同的数据类型:

import pandas as pd

ach_data = pd.read_excel(r'C:\temp\SHC v0.34.xlsm', sheet_name=['ABA_Accounts'])
c2c_import = pd.read_csv(r'C:\temp\C2C Import File.csv')

print('Excel: ' + str(type(ach_data)))
print('CSV: ' + str(type(c2c_import)))

输出:输出:

Excel: <class 'dict'>
CSV: <class 'pandas.core.frame.DataFrame'>

有什么原因?

I'm trying to import a CSV and Excel (xlsx) to process, merge, compute... however, when using pandas to import each, I get different data types:

import pandas as pd

ach_data = pd.read_excel(r'C:\temp\SHC v0.34.xlsm', sheet_name=['ABA_Accounts'])
c2c_import = pd.read_csv(r'C:\temp\C2C Import File.csv')

print('Excel: ' + str(type(ach_data)))
print('CSV: ' + str(type(c2c_import)))

Output:

Excel: <class 'dict'>
CSV: <class 'pandas.core.frame.DataFrame'>

Any reason why?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

人间☆小暴躁 2025-02-13 15:45:20

这是因为您将列表传递到sheet_name参数,请使用sheet_name ='aba_accounts'而不是:

ach_data = pd.read_excel(r'C:\temp\SHC v0.34.xlsm', sheet_name='ABA_Accounts')

如果您阅读 documentation 关于返回的内容:

返回dataframe或 dataframes的

来自传递的Excel文件的DataFrame。请参阅 Sheet_name 中的注释,以获取有关的更多信息,请参见的更多信息。

It's because you pass a list to sheet_name parameter, use sheet_name='ABA_Accounts' instead:

ach_data = pd.read_excel(r'C:\temp\SHC v0.34.xlsm', sheet_name='ABA_Accounts')

If you read the documentation about what is returned:

Returns DataFrame or dict of DataFrames

DataFrame from the passed Excel file. See notes in sheet_name argument for more information on when a dict of DataFrames is returned.

爱的那么颓废 2025-02-13 15:45:20

将列表指定为Sheet_name参数意味着您想从.xslm文件中读取多个图片作为dataframes的dict。

文档的一个例子:

[0,1,“ Sheet5”]:首先加载,第二个名为“ Sheet5”的表格为DataFrame

,如果您只需一个数据框,只需将其作为字符串传递: ='aba_accounts'。

Specifying a list as the sheet_name argument means that you want to read multiple sheets from the .xslm file as a dict of DataFrames.

An example from the docs:

[0, 1, "Sheet5"]: Load first, second and sheet named "Sheet5" as a dict of DataFrame

If you only want one dataframe, just pass it as a string: sheet_name='ABA_Accounts'.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文