解析pandas多索引数据帧中的indeces和值

时间:2015-06-14 21:53:08

标签: python pandas

我有一个与此类似的格式的数据框:

+--------+--------+----------+------+------+------+------+
|        |        |          |      | day1 | day2 | day3 |
+--------+--------+----------+------+------+------+------+
| id_one | id_two | id_three | date |      |      |      |
| 18273  | 50     | 1        | 3    |    9 |   11 |    3 |
|        |        |          | 4    |   26 |   27 |   68 |
|        |        |          | 5    |   92 |   25 |    4 |
|        |        |          | 6    |   60 |   72 |   83 |
|        | 60     | 2        | 5    |   69 |   93 |   84 |
|        |        |          | 6    |   69 |   30 |   12 |
|        |        |          | 7    |   65 |   65 |   59 |
|        |        |          | 8    |   57 |   88 |   59 |
|        | 70     | 3        | 5    |   22 |   95 |    7 |
|        |        |          | 6    |   40 |   24 |   20 |
|        |        |          | 7    |   73 |   81 |   57 |
|        |        |          | 8    |   43 |    8 |   66 |
+--------+--------+----------+------+------+------+------+

我正在尝试创建包含id_oneid_two的元组以及每个分组包含的值。

为了测试这个,我只是尝试打印这样的ID和值:

for id_two, data in df.head(100).groupby(level='id_two'):
    print id_two, data.values.ravel()

它为我提供了id_two和完全符合它的数据。

当我尝试合并id_one时,我遇到了问题。我试过这个,但遇到了错误ValueError: need more than 2 values to unpack

for id_one, id_two, data in df.head(100).groupby(level='id_two'):
    print id_one, id_two, data.values.ravel()

如何打印id_oneid_two和数据?

1 个答案:

答案 0 :(得分:0)

您可以将列表列表传递到level参数:

df.head.groupby(level=['id_one', 'id_two'])