我希望我能正确解释我的问题.. 我有一个 dataframe (306x40) 多行包含某个组的数据,我需要按索引对它们进行分组,这没问题。 接下来,我需要将这些行与具有特定条件的另一行进行比较。 以这个数据为例: 因此,我需要将每个 Id 的 var1、var2、var3 与条件为 3 的行进行比 ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
我有一个如下数据集:
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]})
现在我们可以看到该表中缺少几天的条目。 即 A 为 2019-01-02,B 为 2019-01-02、2019-01-03,C 为 2019-01-02。
我要做的是在 dataframe 中为这些日期添加虚拟行,
收盘价列与下一个开盘价输入相同。 而且我不在乎开盘价,它可以是 nan 或 0
预期 output
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]})
任何帮助,将不胜感激 !
您的逻辑对于应该如何插值价格是模糊的,但是为了让您开始,请考虑这一点,记住将 date 转换为 datetime dtype:
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.