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ểm | Nhược điểm |
|---|---|---|
| concat + ignore_index | Rõ ràng, an toàn, giữ dtype | Tạo DF trung gian |
| loc[-1] + shift | Không tạo DF mới | Phức tạp, dễ sai, ghi đè nếu không shift |
| list + constructor | Nhanh, đơn giản | Mấ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.