我在Pandas中有一些数据框:
1 2
a .2
a .3
b .5
我想为每个记录添加一个带有小时(从0到23)的列,因此它看起来像
1 2 3
a .2 0
a .2 1
a .2 2
...
a .2 23
a .3 0
a .3 1
...
a .3 23
b .5 0
...
b .5 23
最佳答案
创建小时数组:
import numpy as np
hours = np.tile(np.arange(24), len(df))
将每个
df
记录重复24次:df = df.loc[df.index.repeat(24)].reset_index(drop=True)
将小时数组分配为数据框的新列:
df[3] = hours
df.head()
# 1 2 3
#0 a 0.2 0
#1 a 0.2 1
#2 a 0.2 2
#3 a 0.2 3
#4 a 0.2 4
放在一起:
def expand_hours(df):
import numpy as np
hours = np.tile(np.arange(24), len(df))
df = df.loc[df.index.repeat(24)].reset_index(drop=True)
df[3] = hours
return df
关于python - 如何在带有小时列的Pandas数据框中“丰富”每条记录?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46850934/