pandas - 如何在 pandas 中按日期分组。我在一个日期有 48 个条目,即 30 分钟间隔
问题描述
请在下面找到输入和输出。在代码中输入,在图像中输出。输入:
time value index_no date block_out no_load
0 2018-07-16 00:30:00 1 2.0 2018-07-16
1 2018-07-16 01:00:00 -1 3.0 2018-07-16 3.0
2 2018-07-16 01:30:00 -1 4.0 2018-07-16 4.0
3 2018-07-16 02:00:00 -1 5.0 2018-07-16 5.0
4 2018-07-16 02:30:00 1 6.0 2018-07-16
5 2018-07-16 03:00:00 1 7.0 2018-07-16
6 2018-07-16 03:30:00 0 8.0 2018-07-16 8.0
7 2018-07-16 04:00:00 1 9.0 2018-07-16
8 2018-07-16 04:30:00 -1 10.0 2018-07-16 10.0
9 2018-07-16 05:00:00 2 11.0 2018-07-16
10 2018-07-16 05:30:00 3 12.0 2018-07-16
11 2018-07-16 06:00:00 2 13.0 2018-07-16
12 2018-07-16 06:30:00 2 14.0 2018-07-16
13 2018-07-16 07:00:00 -1 15.0 2018-07-16 15.0
14 2018-07-16 07:30:00 1 16.0 2018-07-16
15 2018-07-16 08:00:00 -1 17.0 2018-07-16 17.0
16 2018-07-16 08:30:00 2 18.0 2018-07-16
17 2018-07-16 09:00:00 2 19.0 2018-07-16
18 2018-07-16 09:30:00 3 20.0 2018-07-16
19 2018-07-16 10:00:00 -1 21.0 2018-07-16 21.0
解决方案
这就是你在熊猫中按列分组的方式
import pandas as pd
import numpy as np
# Generating random data
data = np.random.randint(0, 4, 15).reshape(5, 3)
# Wrapping it with pandas DataFrame
df = pd.DataFrame(data, columns=['A', 'B', 'C'])
# Group by column 'A'
groupbys = df.groupby('A')
在您的特定问题中,您希望将'time'
列拆分为'date'
,'time'
然后分组,'date'
但它可能不会让您到任何地方,因为您没有定义要执行的聚合类型。
如果您不知道如何拆分“时间”列,您可以使用 map 函数并将其转换为 datetime 对象,如下所示:
def to_datetime(str):
return datetime.strptime('2018-07-16 00:30:00', "%Y-%m-%d %H:%M:%S")
而不是像这样创建一个新列:
df['date'] = list(map(to_datetime, df['time']))
推荐阅读
- qt - 尽管没有虚函数,但未定义对类的 vtable 引用
- android - ViewModelFactory 无法正确实例化 ViewModel
- google-calendar-api - 多个 Google 日历到 Google 表格的两种方式同步问题
- android - org.jetbrains.kotlin.resolve.lazy.NoDescriptorForDeclarationException:找不到声明 SCRIPT 的描述符
- python - 两个或多个数字的单独数字打印
- image - 无法在本地找到图像“de:latest” - Docker
- python - 按列着色熊猫时间序列
- java - Mule Anypoint 工作室无法启动
- java - 如何在 Akka grpc 中实现管道
- c++ - 重新定义 printf()、sprintf() 等 arm-none-eabi 工具链