(背景:我正在尝试学习Pandas和matplotlib并从我的irclogs中获取一些漂亮的图表。)
我设法将一些数据解析为多索引系列(让我们称之为series
):
msgs
id datetime_period
A 2014-07-04 07:00 1
2014-07-04 08:00 2
2014-07-08 11:00 5
B 2014-07-08 11:00 1
C 2014-07-04 07:00 2
对于图表,我想将其组织成一个类似这样的数据框:
index A B C
2014-07-04 07:00 1 0 2
2014-07-04 08:00 2 0 0
2014-07-08 11:00 5 1 0
我将如何继续这样做?我想我可以这样做:
df = DataFrame({i: series.ix[i] for i in ['A', 'B', 'C'] })
但是还有更多的熊猫'办法? (或者,如果没有,我将如何从系列中检索列表[' A' B'' C']而不是如上所述明确写出来?)
或者(在它更容易使用的情况下),还可以使用原始的' raw'我用来构建系列的数据框。它包含每个缺口发布的每条消息的时间戳,如下所示:
timestamp id
2014-07-04 07:11:00 A
2014-07-04 07:12:32 C
2014-07-04 07:15:03 C
etc.
答案 0 :(得分:3)
unstack
可用于将MultiIndex的级别转换为列。 fillna
将缺失值替换为0,如您所需的输出所示。
In [313]: series.unstack(level='id').fillna(0)
Out[313]:
id A B C
datetime_period
2014-07-04 07:00:00 1 0 2
2014-07-04 08:00:00 2 0 0
2014-07-08 11:00:00 5 1 0