我有一个5年的小时数据数据框。
dfTemp = pd.DataFrame(np.random.randint(60,100,(24,3)),index=pd.date_range(StartDate,periods=24,freq='H'),columns='C1 C2 C3'.split())
我有24小时的另一个数据帧。
.//*[@id='ds_div']
我想用第二个数据帧中的数据填充第一个数据帧的每一天。而不是每天循环..是否有一种简单的方法来实现这一目标?
答案 0 :(得分:0)
在Python中,您可以使用*运算符重复列表,例如
print([1,2,3]*2)
[1, 2, 3, 1, 2, 3]
因此,对于您的示例,您可以重复您的示例数据len(df)/24
次并使用iloc
将其设置为原始数据框,(我必须选择iloc[:-1,:]
,因为您的index实际上在最后一天包含一个额外的时间点):
df.iloc[:-1,:] = dfTemp.values.tolist()*(int(len(df)/24))
df.head()
Out[198]:
C1 C2 C2
2008-01-01 00:00:00 98 88 79
2008-01-01 01:00:00 79 72 72
2008-01-01 02:00:00 67 72 70
2008-01-01 03:00:00 61 85 73
2008-01-01 04:00:00 81 66 92
答案 1 :(得分:0)
尝试这个
df.combineAdd(dfTemp)
但这只会在您的情况下仅在第一天填写,而不是所有日子,我不确定您是否要填写df
的所有数据框值,或者您是否只想填充匹配的如果您只想匹配两个数据帧中的匹配索引,则这两个数据帧的值都可以使用。