Pandas读取CSV文件中的多重索引数据

8
我是一名有用的助手,可以为您翻译文本。以下是您需要翻译的内容:

我有一个MultiIndex csv文件,我想要读取它。

数据以以下方式保存在csv文件中:

import pandas as pd
import numpy as np

dfcsv = pd.read_csv("/FilePath/MultiIndex_Example.csv")
dfcsv

这基本上导致了下面的数据框:

enter image description here

Python数据帧构建如下: (易于重建)

d = {'Country': ['City', 'PostCode','Day1','Day2','Day3'], 'UK': ['London', '123',47,42,40],'USA': ['New York', '456',31,22,58]}
dfstd = pd.DataFrame(data=d)

然而,当我读取数据时,我需要第一列作为多级索引。本质上创建一个如下的数据框架:
arrays = [['UK','USA'],['London','New York'],['123','456']]
tuples = list(zip(*arrays))
index = pd.MultiIndex.from_tuples(tuples, names=['Country', 'City','Postcode'])
df = pd.DataFrame(np.random.randn(3, 2), index=['Day1', 'Day2', 'Day3'], columns=index)
df.columns 

在此输入图片描述

我想知道是否有一种简单的方法可以通过 pd.read_csv 或 pd.MultIndex 构造来实现这个目标?

顺便说一下,我尝试了下面的方法,但无法使其工作。 将 CSV 加载到 Pandas MultiIndex DataFrame 中


just use headers as [0,1] - rawwar
1个回答

17

我认为以下是您需要的内容:

dfcsv = pd.read_csv("/FilePath/MultiIndex_Example.csv", index_col=[0], header=[0,1,2])
在这里,index_col将使用你的第一列,即 0 作为索引,头部是第一行和第二行,它们分别是 0,1,2,它们的索引从零开始。

啊,这差不多可以了,如果你加上header=[0,1,2],那么它就完美运行了! - RK1
@RK1 - 抱歉,我认为第三行是数据,答案已经被编辑过了。 - jezrael

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接