python - 如何将 csv 文件读入具有多行索引级别的 pandas DataFrame?

标签 python pandas

原始的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

关于python - 如何将 csv 文件读入具有多行索引级别的 pandas DataFrame?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16121392/

相关文章:

python - 将 ASCII 字符转换为 "<Uxxx>"unicode 符号的脚本

python - 如何从字典创建 csv

python - Pandas : finding out wrong data

python - Tensorflow 模型的超参数调优

python - 检查 glob 中的路径是否为空?

python - 为什么在 Python 多处理中将启动方法从 'spawn' 更改为 'fork' 不允许我再运行我的工作?

python - 如何使用 Tweepy 多次调用 Twitter API 以获得每个用户超过 200 条推文?

python - 在按天和小时分组后重命名 Pandas 列

python - 将 Python 中数据帧的日期时间更改为以一位数小时结尾

python - 基于大量此类短语替换大文本文件中的短语的省时方法