Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

วิธีเลื่อนคอลัมน์ใน Pandas DataFrame


เราสามารถใช้เมธอด shift() ใน Pandas เพื่อเลื่อนคอลัมน์ของ DataFrame โดยไม่ต้องเขียน DataFrame ใหม่ทั้งหมด shift() รับพารามิเตอร์ดังนี้

shift(self, periods=1, freq=None, axis=0, fill_value=None)
  • periods จำนวนช่วงที่จะเลื่อน สามารถรับค่าลบได้
  • axis รับค่า Boolean; 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