如何在不修改DataFrame首列的情况下实现列移位操作?
问题整理
原始DataFrame:
| A | B | C |
|---|---|---|
| First | row to delete | row to shift |
| Second | row to delete | row to shift |
想要的结果:
| A | B | C |
|---|---|---|
| First | row to shift | |
| Second | row to shift |
试过df.shift(-1, axis=1),但会把A列也左移,得到的不符合预期的结果:
| A | B | C |
|---|---|---|
| row to delete | row to shift | |
| row to delete | row to shift |
需求:保留A列完全不变,后面的列左移一位,最后一列清空。
解决办法
方法1:直接赋值(列数少的时候最省事)
需求明确的话,直接硬写赋值逻辑就行:
# 把C列的内容挪到B列 df['B'] = df['C'] # 清空C列 df['C'] = ''
方法2:批量处理多列(列多的时候用)
如果后续有N多列(比如B、C、D、E...),不想挨个赋值,就单独拎出A列,剩下的列做shift再合并:
import pandas as pd # 先把A列单独拿出来 col_a = df['A'].copy() # 对A以外的所有列执行左移一位 shifted_rest = df.drop('A', axis=1).shift(-1, axis=1) # 把A列和处理后的列拼回去 df = pd.concat([col_a, shifted_rest], axis=1) # 把默认的NaN换成空字符串(按需选择) df = df.fillna('')
这样两种方式都能精准保住A列,同时实现你要的移位效果。
内容的提问来源于stack exchange,提问作者Julio
相关产品推荐
相关产品推荐

