Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

เพิ่มแถวที่ด้านบนสุดใน DataFrame แพนด้า


ใน 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