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

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


ใน Pandas DataFrame เป็นโครงสร้างข้อมูลสองมิติ คือข้อมูลจัดเรียงในรูปแบบตารางในแถวและคอลัมน์ เราสามารถสร้าง DataFrame ได้จาก List, Dict, Series และ DataFrame อื่น แต่เมื่อเราต้องการเพิ่มแถวใหม่ใน DataFrame ที่สร้างแล้ว ทำได้ผ่านเมธอดในตัวอย่าง append ซึ่งเพิ่มที่ท้ายของ 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      M  Tom
1   34      M  Jack
2   29      F  Mary
3   42      F  Ricky

วิธีที่ 1 - วิธีแรกที่เราทำตามเพื่อเพิ่มแถวใหม่ที่ด้านบนของ DataFrame ข้างต้นคือแปลงแถวที่จะเพิ่มเป็น DataFrame และ concat กับ 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 กับ DataFrame เก่าและรีเซ็ต 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 ในตัวอย่างด้านล่าง เราเพิ่มแถวใหม่เป็น List โดยระบุค่าดัชนีสำหรับเมธอด .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)

# เพิ่มแถวใหม่ที่ตำแหน่งดัชนี 0 ด้วยค่าที่ให้ใน 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