熊猫初学者。
我有一个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分钟)?
答案 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倍