2024-04-25 22:48:22 发布
网友
我有一只熊猫
id v1 v2 1 20.1 30.1 2 32.0 40 3 11.0 12.012
我想再添加两列,使我的数据帧看起来像:
id v1 v2 v1_new v2_new 1 20.1 30.1 32.0 40 2 32.0 40 11.0 12.012 3 11.0 12.012 20.1 30.1
即在前一行中添加下一个连续行作为列,在最后一行中添加第一行的列填充值。你知道吗
有什么办法吗?你知道吗
作为参考,您可以使用df.iloc和pd.concat实现np.roll的通用版本:
df.iloc
pd.concat
np.roll
In [521]: pd.concat([df1, df1.iloc[:, -2:].transform(np.roll, shift=-1).add_suffix('_new')], 1) Out[521]: id v1 v2 v1_new v2_new 0 1 20.1 30.100 32.0 40.000 1 2 32.0 40.000 11.0 12.012 2 3 11.0 12.012 20.1 30.100
这是John Galt's solution的一个更通用的版本,如果您想滚动任意数量的列,它就可以工作。你知道吗
使用np.roll
In [793]: df.assign(v1_new=np.roll(df.v1, -1), v2_new=np.roll(df.v2, -1)) Out[793]: id v1 v2 v1_new v2_new 0 1 20.1 30.100 32.0 40.000 1 2 32.0 40.000 11.0 12.012 2 3 11.0 12.012 20.1 30.100
作为参考,您可以使用
df.iloc
和pd.concat
实现np.roll
的通用版本:这是John Galt's solution的一个更通用的版本,如果您想滚动任意数量的列,它就可以工作。你知道吗
使用
np.roll
相关问题 更多 >
编程相关推荐