Python 了解如何在数据帧中的两行值之间添加附加值
我有一个融化的数据框。在同一索引下,我有“早期日期”和“最新日期”,它们是“int”数据类型。我想在“早期日期”和“最新日期”行值之间创建其他值。顺便提一下,我想将生成的值堆叠到它们之间的新行中 例如,在5021索引下,我想在“早期日期”和“最新日期”-->201729和201731之间添加一个中间值。中间值将位于同一索引5021下,它只是201730 然而,“提前日期”和“最晚日期”之间的差距可能在5%以内。例如,在同一索引下,“早期日期”和“最新日期”->201730和201733。然后,我需要插入的中间值将是201731和201732 有没有办法执行此操作?*可以忽略索引(日期) 这是原始的数据帧,我想在“早期日期”和“最新日期”的日期范围内平均分割“VOL”。例如,在索引5021中,我希望在“早期日期”和“最新日期”==201729和201731时将VOL从2分散到2/3。在数据框中也显示201730 样本数据 使用pop和explodePython 了解如何在数据帧中的两行值之间添加附加值,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个融化的数据框。在同一索引下,我有“早期日期”和“最新日期”,它们是“int”数据类型。我想在“早期日期”和“最新日期”行值之间创建其他值。顺便提一下,我想将生成的值堆叠到它们之间的新行中 例如,在5021索引下,我想在“早期日期”和“最新日期”-->201729和201731之间添加一个中间值。中间值将位于同一索引5021下,它只是201730 然而,“提前日期”和“最晚日期”之间的差距可能在5%以内。例如,在同一索引下,“早期日期”和“最新日期”->201730和201733。然后,我
您说可以忽略
date
列,但在您的示例中,date
似乎是索引,而不仅仅是任何列。我认为您应该将原始数据帧和您想要获得的数据帧作为代码块插入,而不是图片,这样,任何想要帮助的人都可以轻松地复制粘贴它们index@kelvin.aaa2我们能在熔化数据帧之前看到它吗df.head(10).to_dict()
并粘贴有问题的结果。嗨,克里斯,我把原始df贴在了第三张图片上,谢谢你,克里斯!
df = pd.DataFrame({'index': [1,1,2,2,3,3],
'variable': ['early_date', 'late_date']*3,
'value': [123,124,125,127,128,129]})
# This is what your data looks like unmelted
df_p = df.pivot('index', 'variable', 'value').reset_index()
df_p.columns.name = ''
# set the index column as the index of the frame
df_p = df_p.set_index('index')
# use list comprehension with zip and pop to create a range
df_p['new'] = [list(range(x,y+1)) for x, y in zip(df_p.pop('early_date'), df_p.pop('late_date'))]
# explode new column
df_p['new'].explode()
index
1 123
1 124
2 125
2 126
2 127
3 128
3 129