Python 熊猫将被丢弃的元素移动到开头

Python 熊猫将被丢弃的元素移动到开头,python,numpy,pandas,Python,Numpy,Pandas,我找不到一个简单的方法来移动一个数据帧,但不是丢弃末尾的值,而是将它们移动到开头 e、 g 使用此代码: import pandas as pd df = pd.DataFrame(dict(val=[10, 20, 30, 40])) df.shift(1) 我获得: val 0 NaN 1 10 2 20 3 30 但我想获得: val 0 40 1 10 2 20 3 30 被丢弃的40应该填满它留下的空白 有什么想法吗?您想要的是,这将滚

我找不到一个简单的方法来移动一个数据帧,但不是丢弃末尾的值,而是将它们移动到开头

e、 g

使用此代码:

import pandas as pd

df = pd.DataFrame(dict(val=[10, 20, 30, 40]))
df.shift(1)
我获得:

   val
0  NaN
1   10
2   20
3   30
但我想获得:

   val
0   40
1   10
2   20
3   30
被丢弃的40应该填满它留下的空白

有什么想法吗?

您想要的是,这将滚动元素通过末端,并沿轴将其包装回起点:

In [121]:

np.roll(df,1)
Out[121]:
array([[40],
       [10],
       [20],
       [30]], dtype=int64)

In [123]:

df['val'] = np.roll(df, 1)
df
Out[123]:
   val
0   40
1   10
2   20
3   30
之后,这将滚动元素通过端点,并沿轴将其包裹回起点:

In [121]:

np.roll(df,1)
Out[121]:
array([[40],
       [10],
       [20],
       [30]], dtype=int64)

In [123]:

df['val'] = np.roll(df, 1)
df
Out[123]:
   val
0   40
1   10
2   20
3   30

真棒,这正是我想要的。在接受你的回答之前,我会等一会儿,看看是否还有其他方法。真棒的人,这正是我想要的。在接受你的回答之前,我会等一会儿,看看是否还有其他办法。