我有一个如下所示的数据帧:
DATE FOLIO_ID LAT ... DIA HORA CIUDAD_APROXIMADA
0 11/01/2018 D00001 22.768507 ... 4 15 SAN NICOLAS DE LOS GARZA
1 26/02/2018 D00009 25.708889 ... 1 2 SAN NICOLAS DE LOS GARZA
2 01/01/2018 D00014 25.647176 ... 1 4 GUADALUPE
3 01/01/2018 D00017 25.714607 ... 1 5 SAN NICOLAS DE LOS GARZA
4 01/01/2018 D00018 25.492993 ... 1 9 SANTIAGO
我想创建一个名为PERIODO_DIA
的新列,它基于HORA
填充,如下所示
import numpy as np
import pandas as pd
for i in df["HORA"]:
if 6< i < 11:
df["PERIODO_DIA"] = 1
elif 12 < i < 20:
df["PERIODO_DIA"] = 2
elif 21 < i < 24:
df["PERIODO_DIA"] = 3
else:
df["PERIODO_DIA"] = 4
因此,代码在数据帧的每一行上迭代,检查来自HORA的每一个值,并基于该值为PERIODO__DIA分配一个值
到目前为止,我已经尝试了不同的循环,但我无法理解其中的逻辑
由于您的周期不是连续的(即,您跳过一天中的一些小时并将它们全部分组在
4
),因此您不能使用pd.cut。但是你可以通过一个简单的循环来解决这个问题或者创建一个字典,将所有24小时作为键,周期作为值(
mapper = {0: 4, 1: 4, ..., 7: 1, ..., 23: 4}
),并使用df.map
相关问题 更多 >
编程相关推荐