【问题标题】:pandas read in MultiIndex data from csv filepandas 从 csv 文件中读取 MultiIndex 数据
【发布时间】:2018-11-12 22:16:27
【问题描述】:

我有一个想读入的 MultiIndex csv 文件。

数据保存在csv文件中如下:

import pandas as pd
import numpy as np

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

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

Python Dataframe 构造如下: (容易重构)

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 构造实现此目的的简单方法?

仅供参考,我尝试了以下方法,但无法正常工作 Load CSV to Pandas MultiIndex DataFrame

【问题讨论】:

  • 只使用标题作为 [0,1]

标签: python pandas


【解决方案1】:

我认为您需要以下内容:

dfcsv = pd.read_csv("/FilePath/MultiIndex_Example.csv", index_col=[0], header=[0,1,2])

在这里,index_col 会将您的第一列0 作为索引,将标题作为第一行和第二行作为标题,0,1,2 作为其 0 索引

【讨论】:

  • 啊,这几乎可以正常工作,如果您添加 header=[0,1,2] 那么它可以完美运行!
  • @RK1 - 抱歉,我认为 3 行是数据,答案已编辑。
猜你喜欢
  • 2019-06-15
  • 2020-12-31
  • 2018-07-01
  • 2014-01-07
  • 2019-09-17
  • 1970-01-01
  • 2019-05-03
相关资源
最近更新 更多