我有一个Pandas数据框,我想添加一个新列,它包含现有列的内容,但相对于数据框的其余部分进行了移动。我还想将从底部下降的值滚动到顶部。
例如,如果这是我的 Dataframe :
>>> myDF
coord coverage
0 1 1
1 2 10
2 3 50
我想得到这个:
>>> myDF_shifted
coord coverage coverage_shifted
0 1 1 50
1 2 10 1
2 3 50 10
(This只是一个简化的示例-在真实的生活中,我的 Dataframe 更大,我需要移动不止一个单位)
这是我试过的,得到的结果:
>>> myDF['coverage_shifted'] = myDF.coverage.shift(1)
>>> myDF
coord coverage coverage_shifted
0 1 1 NaN
1 2 10 1
2 3 50 10
我可以创建移位列,但我不知道如何将底部值滚动到顶部。从互联网搜索来看,我认为numpy可以让你用“numpy.roll”来做这件事。有Pandas的等价物吗?
2条答案
按热度按时间ccgok5k51#
Pandas可能没有提供现成的方法来完成您所描述的任务,但是如果您可以稍微移动一下,
numpy
具有exactly that在您的情况下,它是:
nnsrf1az2#
您可以向
shift()
传递一个额外的参数来实现您想要的结果。您必须手动为
fill_value
提供值这同样可以应用于反向轧制