Chúng ta có thể sử dụng phương thức shift() trong Pandas để dịch chuyển các cột của DataFrame mà không cần viết lại toàn bộ DataFrame. shift() chấp nhận các tham số sau:
shift(self, periods=1, freq=None, axis=0, fill_value=None)
- periods Số kỳ để dịch chuyển. Có thể nhận số âm.
- axis Nhận giá trị Boolean; 0 nếu muốn dịch chuyển chỉ mục (hàng), 1 nếu muốn dịch chuyển cột.
- fill_value Giá trị thay thế cho giá trị thiếu.
Hãy lấy một ví dụ và xem cách sử dụng phương thức shift() này.
Các bước
- Tạo dữ liệu bảng hai chiều, kích thước có thể thay đổi, tiềm năng dị chất,
df. - In DataFrame đầu vào,
df. - Chọn một cột và dịch chuyển nó bằng cách sử dụng df["column_name"] = df.column_name.shift().
- In DataFrame đã cập nhật.
Ví dụ
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)
Kết quả
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