大熊猫 - 从最后一分钟中选择24小时数据的数据

时间:2017-01-12 09:54:46

标签: python pandas dataframe time-series

熊猫初学者。

我有一个24小时的时间序列,以分钟为单位,在A栏中有累积值:

Time                Energy
11-01-2017 10:14    19.14634168
11-01-2017 10:15    19.14702618
11-01-2017 10:16    19.14719065
11-01-2017 10:17    19.14719065
…   
11-01-2017 23:56    19.47694149
11-01-2017 23:57    19.4771605
11-01-2017 23:58    19.47753776
11-01-2017 23:59    19.47801377

我想知道A列的值是在每小时结束时(dd-mm-yyy hh: 59 ),并将此数据保存在csv文件中,添加额外的列以显示小时。结果如下:

   Time             Hour  Energy
   11-01-2017 00:59    1     02.0000000
   11-01-2017 01:59    2     04.1234554
   11-01-2017 02:59    3     06.1234554
   ...
   11-01-2017 23:59    24    19.4780137

我应该根据59的秒值迭代时间序列,还是更容易在每列60行中拔出A列中的值,因为总有1440行(1440分钟)?

2 个答案:

答案 0 :(得分:2)

您可以使用:

df.Time = pd.to_datetime(df.Time)
df['hour'] = df.Time.dt.hour + 1
df1 = df[df.Time.dt.minute == 59]

print (df1)
                 Time     Energy  hour
7 2017-11-01 23:59:00  19.478014    24

答案 1 :(得分:1)

如果你的时间值是规则的,没有间隙,你说你可以使用切片语义和步骤arg:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/rlActivityNotificationsAndProfile">
<include layout="@layout/layout_tool_bar"/>
<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="@dimen/profile_wallpaper_container_height"
    android:id="@+id/rlProfileWallpaper"
    android:layout_below="@+id/toolbar">
    <LinearLayout
        android:layout_width="match_parent"
        android:background="#646464"
        android:orientation="vertical"
        android:layout_height="@dimen/profile_wallpaper_height">
        <LinearLayout
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:layout_gravity="center"
            android:background="#A52525">
        </LinearLayout>
</LinearLayout>
<android.support.design.widget.FloatingActionButton xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/tools"
        android:id="@+id/fabEditProfile"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_margin="@dimen/base_ten_dp"
        android:layout_marginEnd="@dimen/base_ten_dp"
        android:layout_marginStart="@dimen/base_ten_dp"
        android:scaleType="center"
        android:src="@drawable/add"
        app:elevation="@dimen/priority_1_elevation"
        app:fabSize="1"/>
</RelativeLayout>
</LinearLayout>

如果第一个条目不是第​​一分钟,就像你展示的那样只是偏移第一个arg:

df.iloc[::60]

第14分钟是第59分钟45分

<强>定时

df.iloc[45::60]

因此切片速度快〜20倍