ใน Pandas DataFrame เป็นโครงสร้างข้อมูลสองมิติ กล่าวคือ ข้อมูลถูกจัดแนวในรูปแบบตารางในแถวและคอลัมน์ เราสามารถสร้าง DataFrame โดยใช้ list, dict, series และ DataFrame อื่น แต่เมื่อเราต้องการเพิ่มแถวใหม่ให้กับ DataFrame ที่สร้างไว้แล้ว สามารถทำได้โดยใช้วิธีการในตัว เช่น append ซึ่งเพิ่มเข้าไปที่ส่วนท้ายของ DataFrame ในบทความนี้ เราจะหาวิธีเพิ่ม DataFrame แถวใหม่ที่ด้านบนสุดของ DataFrame โดยใช้เทคนิคบางอย่างที่เกี่ยวข้องกับดัชนีขององค์ประกอบใน DataFrame
ตัวอย่าง
ขั้นแรกให้สร้าง DataFrame ใหม่ใน Pandas ที่แสดงด้านล่าง
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 df
ผลลัพธ์
การรันโค้ดด้านบนทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
Age Gender Name 0 28 MTom 1 34 MJack 2 29 FMary 3 42 F Ricky
วิธีที่ 1 - วิธีแรกที่เราปฏิบัติตามเพื่อเพิ่มแถวใหม่ที่ด้านบนของ DataFrame ด้านบนคือการแปลงแถวที่เข้ามาใหม่เป็น DataFrame และเชื่อมต่อกับ DataFrame ที่มีอยู่ในขณะที่รีเซ็ตค่าดัชนี เนื่องจากดัชนีรีเซ็ต แถวใหม่จึงถูกเพิ่มไว้ด้านบน
ตัวอย่าง
import pandas as pd data = {'Name':['Tom', 'Jack', 'Mary', 'Ricky'],'Age':[28,34,29,42],'Gender':['M','M','F','F']} df = pd.DataFrame(data) top_row = pd.DataFrame({'Name':['Lavina'],'Age':[2],'Gender':['F']}) # Concat with old DataFrame and reset the Index. df = pd.concat([top_row, df]).reset_index(drop = True) print df
ผลลัพธ์
การรันโค้ดด้านบนทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
Age Gender Name 0 2 F Lavina 1 28 M Tom 2 34 M Jack 3 29 F Mary 4 42 F Ricky
วิธีที่ 2 - ในแนวทางนี้ เราใช้ Dataframe.iloc[] วิธีที่ช่วยให้เราสามารถเพิ่มแถวใหม่ที่ตำแหน่งดัชนี 0 ในตัวอย่างด้านล่าง เรากำลังเพิ่มแถวใหม่เป็นรายการโดยกล่าวถึงค่าดัชนีสำหรับวิธี .loc เป็น 0 ซึ่งเป็นค่าดัชนีสำหรับแถวแรก
ตัวอย่าง
import pandas as pd data = {'Name':['Tom', 'Jack', 'Mary', 'Ricky'],'Age':[28,34,29,42],'Gender':['M','M','F','F']} df = pd.DataFrame(data) # Add a new row at index position 0 with values provided in list df.iloc[0] = ['7', 'F','Piyu'] print df
ผลลัพธ์
การเรียกใช้โค้ดด้านบนทำให้เราได้ผลลัพธ์ดังต่อไปนี้:
Age Gender Name 0 7 F Piyu 1 34 M Jack 2 29 F Mary 3 42 F Ricky