如何在 Pandas DataFrame 中移動列?


在 Pandas 中,我們可以利用 shift() 方法來移動 DataFrame 列,而無需重寫整個 DataFrame。shift() 採用以下引數:

shift(self, periods=1, freq=None, axis=0, fill_value=None)
  • periods  要移動的週期數。它也可以採用負數。
  • axis  它採用布林值;如果要移動索引,則為 0;如果要移動列,則為 1。
  • fill_value  它將替換缺失值。

讓我們透過一個示例來看一下如何使用此 shift() 方法。

步驟

  • 建立一個二維、大小可變、潛在異構的表格資料 df。
  • 列印輸入 DataFrame df。
  • 選擇某列並使用 df["column_name]=df.column_name.shift() 移動它。
  • 列印更新後的 DataFrame。

示例

import pandas as pd

df = pd.DataFrame(
   dict(
      name=['John', 'Jacob', 'Tom', 'Tim', 'Ally'],
      marks=[89, 23, 100, 56, 90],
      subjects=["Math", "Physics", "Chemistry", "Biology", "English"]
   )
)

print "Input DataFrame is:\n", df

df["name"] = df.name.shift(1)
print "After shifting column name by 1:\n", df

df["marks"] = df.marks.shift(2)
print "After shifting column marks by 2:\n", df

df["subjects"] = df.subjects.shift(-1)
print "After shifting column subjects by -1:\n", df

輸出

Input DataFrame is:
     name   marks   subjects
0    John    89         Math
1   Jacob    23      Physics
2     Tom   100    Chemistry
3     Tim    56      Biology
4    Ally    90      English

After shifting column name by 1:
     name   marks   subjects
0     NaN    89         Math
1    John    23      Physics
2   Jacob   100    Chemistry
3     Tom    56      Biology
4     Tim    90      English

After shifting column marks by 2:
     name   marks   subjects
0     NaN    100       Math
1    John    100    Physics
2   Jacob     89  Chemistry
3     Tom     23    Biology
4     Tim    100    English

After shifting column subjects by -1:
     name   marks   subjects
0     NaN   100      Physics
1    John   100    Chemistry
2   Jacob    89      Biology
3     Tom    23      English
4     Tim   100          NaN

更新於:2021-09-15

8K+ 觀看

開啟你的 事業

完成課程以獲得認證

開始
廣告
© . All rights reserved.