Python Pandas-读取包含多个表的csv文件

杰·米斯特

我有一个.csv包含多个表的文件。

使用熊猫,这将是拿到两数据帧的最佳策略inventory,并HPBladeSystemRack从这个文件?

输入.csv看起来像这样:

Inventory       
System Name            IP Address    System Status
dg-enc05                             Normal
dg-enc05_vc_domain                   Unknown
dg-enc05-oa1           172.20.0.213  Normal

HP BladeSystem Rack         
System Name               Rack Name   Enclosure Name
dg-enc05                  BU40  
dg-enc05-oa1              BU40        dg-enc05
dg-enc05-oa2              BU40        dg-enc05

到目前为止,我想出的最好的办法是将此.csv文件转换为Excel工作簿(xlxs),将表拆分为工作表并使用:

inventory = read_excel('path_to_file.csv', 'sheet1', skiprow=1)
HPBladeSystemRack = read_excel('path_to_file.csv', 'sheet2', skiprow=2)

然而:

  • 这种方法需要xlrd模块。
  • 这些日志文件必须实时分析,这样最好找到一种方法来分析它们,因为它们来自日志。
  • 实际日志中的表远远多于这两个表。
帝斯曼

如果您事先知道表名,则如下所示:

df = pd.read_csv("jahmyst2.csv", header=None, names=range(3))
table_names = ["Inventory", "HP BladeSystem Rack", "Network Interface"]
groups = df[0].isin(table_names).cumsum()
tables = {g.iloc[0,0]: g.iloc[1:] for k,g in df.groupby(groups)}

应该可以产生一个字典,其中键是表名,值是子表。

>>> list(tables)
['HP BladeSystem Rack', 'Inventory']
>>> for k,v in tables.items():
...     print("table:", k)
...     print(v)
...     print()
...     
table: HP BladeSystem Rack
              0          1               2
6   System Name  Rack Name  Enclosure Name
7      dg-enc05       BU40             NaN
8  dg-enc05-oa1       BU40        dg-enc05
9  dg-enc05-oa2       BU40        dg-enc05

table: Inventory
                    0             1              2
1         System Name    IP Address  System Status
2            dg-enc05           NaN         Normal
3  dg-enc05_vc_domain           NaN        Unknown
4        dg-enc05-oa1  172.20.0.213         Normal

完成后,可以将列名称设置为第一行,依此类推。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python Pandas:读取具有多个表的csv重复的序言

读取多个 CSV 文件并合并 Python Pandas

使用 python 列表读取 Pandas CSV 文件

python pandas合并多个csv文件

使用Python Pandas,读取xlsx文件中写入的多个文件夹路径并分别处理每个csv文件

如何从多个 CSV 文件中读取特定列,并使用 Python Pandas 跳过某些文件中不存在的列

如何将包含多个表的 .dat 文件读取到 Pandas 数据框中?

Python读取多个.txt文件并使用pandas行绑定

python pandas读取HTML表

Python Pandas无法读取csv文件的第一行

Python pandas 读取 .txt 文件并使用分隔列导出 .csv

读取和写入 csv 文件时出现 Python pandas 错误

Python Pandas:如何仅读取CSV文件的前n行?

使用Python在Pandas中读取CSV文件时出现UnicodeDecodeError

带有Pandas的Python-无法从URL读取CSV文件

在pandas python中按列号读取csv文件

如何在python中使用pandas从csv文件中读取?

使用 pandas python 以特定方式从 csv 文件中读取

Python:读取其中一列包含多个逗号的csv文件

如何使用Python Pandas合并多个CSV文件

在python中读取多个csv文件

从 Python 中的多个文件夹读取多个 CSV 文件?

Python-Pandas 不读取整个 csv

Python - 使用 Pandas 从 CSV 读取列

从现有的csv文件python pandas创建多个csv文件

将多个csv文件读取到Pandas数据框中

Python:Pandas读取CSV:读取CSV时向下转换

在Pandas Python中读取XLSB文件

在 Python Pandas 中读取 JSON 文件