Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Thêm hàng lên đầu (top) trong Pandas DataFrame


Pandas append() thêm hàng ở cuối. Để thêm ở đầu (index 0), cần kỹ thuật đặc biệt.

Tạo DataFrame mẫu

import pandas as pd

data = {
    'Name': ['Tom', 'Jack', 'Mary', 'Ricky'],
    'Age': [28, 34, 29, 42],
    'Gender': ['M', 'M', 'F', 'F']
}
df = pd.DataFrame(data)
print("Gốc:")
print(df)

Cách 1: pd.concat + reset_index (Khuyên dùng)

top_row = pd.DataFrame({'Name': ['Lavina'], 'Age': [2], 'Gender': ['F']})

# Nối top_row lên trước, reset index để đánh số lại 0,1,2...
df = pd.concat([top_row, df], ignore_index=True)
print("\nSau concat + reset_index:")
print(df)

Kết quả

   Age Gender   Name
0    2      F  Lavina
1   28      M     Tom
2   34      M    Jack
3   29      F    Mary
4   42      F   Ricky

Cách 2: loc[0] + shift (Cẩn thận: ghi đè hàng đầu)

df = pd.DataFrame(data)  # Reset lại
# Cách này THAY THẾ hàng index 0, không phải chèn
df.loc[-1] = ['Lavina', 2, 'F']  # Thêm ở index -1
df.index = df.index + 1          # Dịch tất cả index +1
df = df.sort_index()             # Sắp xếp index
print(df)

Cách 3: Dùng list + DataFrame constructor (Nhanh cho nhiều hàng)

new_row = {'Name': 'Lavina', 'Age': 2, 'Gender': 'F'}
df = pd.DataFrame([new_row] + df.to_dict('records'))
print(df)

So sánh

Phương phápƯu điểmNhược điểm
concat + ignore_indexRõ ràng, an toàn, giữ dtypeTạo DF trung gian
loc[-1] + shiftKhông tạo DF mớiPhức tạp, dễ sai, ghi đè nếu không shift
list + constructorNhanh, đơn giảnMất dtype gốc, cần rebuild

Kết luận

Khuyên dùng pd.concat([new_row_df, df], ignore_index=True) cho rõ ràng, an toàn, giữ kiểu dữ liệu.