繁体   English   中英

如何将csv文件读取到具有多行索引级别的pandas DataFrame中?

[英]How to read csv file into pandas DataFrame with multiple row index level?

原始的csv文件数据如下所示:

06/04/2011,104.64,105.17
07/04/2011,104.98,105.51
08/04/2011,105.43,105.96
11/04/2011,104.47,104.99

如何将csv文件读取到DataFrame中并添加多行索引级别,或者如何将多个行索引中添加到csv中并导入到DataFrame中,如下所示:

                JAS
      date      bid    ask
06/04/2011   104.64 105.17
07/04/2011   104.98 105.51
08/04/2011   105.43 105.96
11/04/2011   104.47 104.99

读取CSV,将第一(0)列设置为索引。

In [8]: df = pd.read_csv(StringIO("""06/04/2011,104.64,105.17
07/04/2011,104.98,105.51
08/04/2011,105.43,105.96
11/04/2011,104.47,104.99"""), index_col=0, header=None)

创建一个新的MultiIndex,并将其分配给各列。

In [11]: df.columns = pd.MultiIndex.from_tuples([('JAS', 'bid'), ('JAS', 'ask')])

最后,为索引命名,我们将获得您想要的结果。

In [12]: df.index.name = 'date'

In [13]: df
Out[13]: 
               JAS        
               bid     ask
date                      
06/04/2011  104.64  105.17
07/04/2011  104.98  105.51
08/04/2011  105.43  105.96
11/04/2011  104.47  104.99

简短答案:

df = pd.read_csv('file.csv', parse_dates=True, index_col=0, header=None).rename_axis(
index='date').rename(columns={1: 'bid', 2: 'ask'}).reindex(
columns=pd.MultiIndex.from_product([['JAS'], ['bid', 'ask']]), level=1)

Out[1]: 
           JAS        
           bid     ask
date                      
2011-06-04  104.64  105.17
2011-07-04  104.98  105.51
2011-08-04  105.43  105.96
2011-11-04  104.47  104.99

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM