给定一个基于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
理想情况下,我希望拥有一个包含子数据帧的数据帧,这些子帧只包含非空的条目。谢谢你的帮助。
答案 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])