如何从熊猫的列中拆分数据?

韩erry

我有如下数据框

Date       Time           
2017-12-01 00:00:00  21.64
           00:15:00  21.72
           00:30:00  21.57
           00:45:00  21.47
           01:00:00  21.42
           01:15:00  21.44
           01:30:00  21.48
           01:45:00  21.32
           02:00:00  21.27
           02:15:00  21.29
           02:30:00  21.20
           02:45:00  21.18
           03:00:00  21.19  
2017-12-02 00:00:00  22.78
           00:15:00  22.67
           00:30:00  22.54
           00:45:00  22.55

我想拆分每日数据df1是00:00:00,df2是00:15:00〜03:00:00

我该怎么做?

耶斯列尔

我认为如果用strings填充第二级,则需要slicers

idx = pd.IndexSlice
df1 = df.loc[idx[:, '00:00:00'],:]
print (df1)
                       col
Date       Time           
2017-12-01 00:00:00  21.64
2017-12-02 00:00:00  22.78

df2 = df.loc[idx[:, '00:15:00':'03:00:00'], :]
print (df2)
                       col
Date       Time           
2017-12-01 00:15:00  21.72
           00:30:00  21.57
           00:45:00  21.47
           01:00:00  21.42
           01:15:00  21.44
           01:30:00  21.48
           01:45:00  21.32
           02:00:00  21.27
           02:15:00  21.29
           02:30:00  21.20
           02:45:00  21.18
           03:00:00  21.19
2017-12-02 00:15:00  22.67
           00:30:00  22.54
           00:45:00  22.55

另一种解决方案是按遮罩过滤:

mask = df.index.get_level_values(1) =='00:00:00'
df1 = df[mask]
print (df1)
                       col
Date       Time           
2017-12-01 00:00:00  21.64
2017-12-02 00:00:00  22.78

df2 = df[~mask]

如果第二级是python乘以chane值进行比较:

import datetime

idx = pd.IndexSlice
df1 = df.loc[idx[:, datetime.time(0, 0)],:]
print (df1)
                       col
2017-12-01 00:00:00  21.64
2017-12-02 00:00:00  22.78

df2 = df.loc[idx[:, datetime.time(0, 15, 0):datetime.time(3, 0, 0)], :]
print (df2)
                       col
2017-12-01 00:15:00  21.72
           00:30:00  21.57
           00:45:00  21.47
           01:00:00  21.42
           01:15:00  21.44
           01:30:00  21.48
           01:45:00  21.32
           02:00:00  21.27
           02:15:00  21.29
           02:30:00  21.20
           02:45:00  21.18
           03:00:00  21.19
2017-12-02 00:15:00  22.67
           00:30:00  22.54
           00:45:00  22.55

mask = df.index.get_level_values(1) == datetime.time(0, 0)
df1 = df[mask]

df2 = df[~mask]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

拆分数据帧中与特定列配对的多个列

如何在熊猫数据框中拆分元组列?

熊猫如何按时间间隔按列拆分数据帧

熊猫-拆分数据框中列的每个元素并添加到列表

熊猫:基于列中的空值拆分数据框

在熊猫中按不规则组拆分数据帧

在SQLite列中拆分数据

如何根据Python中的字符位置拆分数据框列?

如何提取/拆分数据框中的列表列以分隔唯一列?

如何拆分数据框并将拆分的部分附加到新列中?

每当列中的字符串值更改时,如何拆分数据帧?

如何在SQL中拆分数据

在R中,如何按多个列中的因数拆分/细分数据帧?

如何基于列中的值差异拆分熊猫数据框

如何拆分数组中的数据

如何在Datastage中基于定界符从单个列拆分数据?

如何在AngularJS中拆分数据?

如何使用某些列的某些子级别拆分数据帧并在 tidyverse 中应用模型

如何在熊猫中按行拆分数据帧或重新排序数据帧

在 R 中的多列中拆分数据框

如何拆分数据框中的列并将每个值存储为新行(在熊猫中)?

如何拆分数据框中的列值

如何拆分数据帧

如何拆分数据?

如何从列中拆分数据并从数据框中添加到列表中,同时为单行重复列表元素?(熊猫)

如何从 StringField 拆分数据

如何在spark中同时拆分数据帧中的两个映射列

在 R wrt 列数据类中拆分数据框

如何按r中列的不同值平均拆分数据帧?