请考虑以下可复制的数据帧作为示例:
import pandas as pd
import numpy as np
from datetime import datetime
list_dates = ['2018-01-05',
'2019-01-01',
'2019-01-02',
'2019-01-05',
'2019-01-08',
'2019-01-22']
index = []
for i in list_dates:
tp = datetime.strptime(i, "%Y-%m-%d")
index.append(tp)
data = np.array([np.arange(6)]*3).T
columns = ['A','B', 'C']
df = pd.DataFrame(data, index = index, columns=columns)
df['D']= ['Loc1', 'Loc1', 'Loc2', 'Loc2', 'Loc4', 'Loc3']
df['E'] = [0.1, 1, 10, 100, 1000, 10000]
上述示例数据帧的图像:
然后,我尝试通过对上述数据集重新采样来创建一个新的dataframe df2
,这样我就拥有了2018-01-05(第一个日期在list_dates
)到2019-01-22(最后一个日期在list_dates
)之间的所有每日日期。在进行重采样时,我基本上会在数据帧中创建新行,但没有任何数据。你知道吗
这些新行应该只是它们最后一个已知值的副本。例如,在我上面的示例数据框中,我有2018-01-05的数据,但在2018-12-31之前没有2018-01-06的数据。所有这些行都应填写上一个/最后一个已知值的值(=2018-01-05行)。你知道吗
我试着用:
df2 = df.resample('D').last()
但是,这不起作用。相反,我得到了从2018-01-05到2019-01-22的所有日期,其中所有新行(不在原始数据帧df
)只有nan
值。你知道吗
我错过了什么?有什么建议可以帮我解决吗?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐