删除Zipped DataFrame元组中的空DataFrame对象

时间:2017-06-08 23:42:33

标签: python pandas

给定一个基于Time索引的时间和值的输入列表,如Dataframe中所示,df:

>>> df
                       Value
Times
2017-05-10 01:05:03        1
2017-05-10 01:05:00        2
2017-05-10 01:05:10        3
2017-05-10 01:08:12        8
2017-05-11 08:30:20        4
2017-05-11 08:30:14        5
2017-05-11 08:30:35        6

然后我使用以下命令按分钟对时间进行分组:

>>> g = df.groupby(pd.TimeGrouper('min'))

然后我使用以下命令压缩这个新数据帧:

>>> (zip(*g)[1])

但是现在,由于我按分钟分组,我有多个空数据帧。我希望按分钟分组,以便我可以遍历每一分钟,但这是我的问题:如何删除创建的空数据框,当没有分组时?示例输出如下所示:

Index: [], Empty DataFrame
Columns: [  Value]
Index: [], Empty DataFrame
Columns: [  Value]
Index: [], Empty DataFrame
Columns: [  Value]
Index: [],                        Value
Times
2017-05-11 08:30:14        5
2017-05-11 08:30:20        4
2017-05-11 08:30:35        6

理想情况下,我希望拥有一个包含子数据帧的数据帧,这些子帧只包含非空的条目。谢谢你的帮助。

1 个答案:

答案 0 :(得分:2)

这会为你做吗?

<强>设定:

import pandas as pd
import io

c = io.StringIO(u'''
Times,Value
2017-05-10 01:05:03,1
2017-05-10 01:05:00,2
2017-05-10 01:05:10,3
2017-05-10 01:08:12,8
2017-05-11 08:30:20,4
2017-05-11 08:30:14,5
2017-05-11 08:30:35,6
''')

df = pd.read_csv(c, parse_dates = ['Times']).set_index('Times')

<强>解决方案:

g = df.groupby(pd.TimeGrouper('min')).max().dropna()

x = (zip(*g)[1])