Một cách để đạt được điều này là
>>> pd.DataFrame(np.array([[2, 3, 4]]), columns=['A', 'B', 'C']).append(df, ignore_index=True)
Out[330]:
A B C
0 2 3 4
1 5 6 7
2 7 8 9
Nói chung, dễ nhất là nối các khung dữ liệu, không phải chuỗi. Trong trường hợp của bạn, vì bạn muốn hàng mới ở "trên cùng" (với id bắt đầu) và không có chức năng nào pd.prepend()
, trước tiên tôi tạo khung dữ liệu mới và sau đó nối khung cũ của bạn.
ignore_index
sẽ bỏ qua chỉ mục cũ đang diễn ra trong khung dữ liệu của bạn và đảm bảo rằng hàng đầu tiên thực sự bắt đầu với chỉ mục 1
thay vì bắt đầu lại với chỉ mục 0
.
Tuyên bố từ chối trách nhiệm điển hình: Cetero censeo ... nối các hàng là một hoạt động khá kém hiệu quả. Nếu bạn quan tâm đến hiệu suất và bằng cách nào đó có thể đảm bảo tạo khung dữ liệu trước tiên với chỉ mục chính xác (dài hơn) và sau đó chỉ cần chèn hàng bổ sung vào khung dữ liệu, bạn chắc chắn nên làm điều đó. Xem:
>>> index = np.array([0, 1, 2])
>>> df2 = pd.DataFrame(columns=['A', 'B', 'C'], index=index)
>>> df2.loc[0:1] = [list(s1), list(s2)]
>>> df2
Out[336]:
A B C
0 5 6 7
1 7 8 9
2 NaN NaN NaN
>>> df2 = pd.DataFrame(columns=['A', 'B', 'C'], index=index)
>>> df2.loc[1:] = [list(s1), list(s2)]
Cho đến nay, chúng tôi có những gì bạn có là df
:
>>> df2
Out[339]:
A B C
0 NaN NaN NaN
1 5 6 7
2 7 8 9
Nhưng bây giờ bạn có thể dễ dàng chèn hàng như sau. Vì không gian đã được phân bổ trước, điều này hiệu quả hơn.
>>> df2.loc[0] = np.array([2, 3, 4])
>>> df2
Out[341]:
A B C
0 2 3 4
1 5 6 7
2 7 8 9
s1.values
vì sử dụnglist(s1)
vì bạn sẽ tạo một danh sách hoàn toàn mới bằng cách sử dụnglist(s1)
.