วิธีหนึ่งในการบรรลุเป้าหมายนี้คือ
>>> 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
โดยทั่วไปการต่อท้ายดาต้าเฟรมไม่ใช่ซีรีส์จะง่ายที่สุด ในกรณีของคุณเนื่องจากคุณต้องการให้แถวใหม่เป็น "ด้านบน" (ด้วย id เริ่มต้น) และไม่มีฟังก์ชันใดpd.prepend()
ๆ ฉันต้องสร้าง dataframe ใหม่ก่อนแล้วจึงต่อท้ายอันเก่าของคุณ
ignore_index
จะไม่สนใจอย่างต่อเนื่องดัชนีเก่า dataframe ของคุณและให้แน่ใจว่าแถวแรกจริงเริ่มต้นด้วยดัชนีแทนการเริ่มต้นใหม่ที่มีค่าดัชนี1
0
คำเตือนทั่วไป: Cetero censeo ... การต่อท้ายแถวเป็นการดำเนินการที่ค่อนข้างไม่มีประสิทธิภาพ หากคุณสนใจเกี่ยวกับประสิทธิภาพและสามารถตรวจสอบให้แน่ใจก่อนสร้าง dataframe ด้วยดัชนีที่ถูกต้อง (ยาวกว่า) จากนั้นเพียงแค่ใส่แถวเพิ่มเติมลงใน dataframe คุณควรทำเช่นนั้นอย่างแน่นอน ดู:
>>> 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)]
จนถึงตอนนี้เรามีสิ่งที่คุณมีdf
ดังนี้:
>>> df2
Out[339]:
A B C
0 NaN NaN NaN
1 5 6 7
2 7 8 9
แต่ตอนนี้คุณสามารถแทรกแถวได้ง่ายๆดังนี้ เนื่องจากมีการจัดสรรพื้นที่ล่วงหน้าจึงมีประสิทธิภาพมากขึ้น
>>> 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
เมื่อเทียบกับการที่คุณจะสร้างรายการใหม่ทั้งหมดโดยใช้list(s1)
list(s1)