根据条件在数据帧行之间填充多行

2024-04-23 18:54:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我的数据集如下:

pd.DataFrame({'Date':['2019-01-01','2019-01-03','2019-01-01','2019-01-04','2019-01-01','2019-01-03'],'Name':['A','A','B','B','C','C'],'Open Price':[100,200,300,400,500,600],'Close Price':[200,300,400,500,600,700]})

现在我们可以看到这个表中少了几天的条目。i、 e 2019-01-02表示A,2019-01-02、2019-01-03表示B,2019-01-02表示C

我要做的是在数据框中为这些日期添加虚拟行

关闭价格栏,与第二天的下一个开放价格条目相同。我不在乎开盘价,可能是nan或0

预期产量

pd.DataFrame({'Date':['2019-01-01','2019-01-02','2019-01-03','2019-01-01','2019-01-02','2019-01-03','2019-01-04','2019-01-01','2019-01-02','2019-01-03'],'Name':['A','A','A','B','B','B','B','C','C','C'],'Open Price':[50,'nan',150,250,'nan','nan',350,450,'nan',550],'Close Price':[200,150,300,400,350,350,500,600,550,700]})

任何帮助都将不胜感激!你知道吗


Tags: 数据namedataframeclosedate条目价格open
1条回答
网友
1楼 · 发布于 2024-04-23 18:54:11

对于如何插值价格,您的逻辑是模糊的,但要开始考虑这个问题,请记住将date输入datetime数据类型:

df['Date'] = pd.to_datetime(df['Date'])
df = (df.groupby('Name')
        .resample('D', on='Date')
        .mean()
        .swaplevel()
        .interpolate()
)

print(df)
                 Open Price  Close Price
Date       Name                         
2019-01-01 A     100.000000   200.000000
2019-01-02 A     150.000000   250.000000   
2019-01-03 A     200.000000   300.000000
2019-01-01 B     300.000000   400.000000
2019-01-02 B     333.333333   433.333333
2019-01-03 B     366.666667   466.666667
2019-01-04 B     400.000000   500.000000  
2019-01-01 C     500.000000   600.000000
2019-01-02 C     550.000000   650.000000
2019-01-03 C     600.000000   700.000000

相关问题 更多 >