ฉันต้องลบสามแถวแรกของ dataframe ในนุ่น
ฉันรู้ว่าdf.ix[:-1]
จะลบแถวสุดท้าย แต่ฉันไม่สามารถหาวิธีลบแถวแรกได้
ฉันต้องลบสามแถวแรกของ dataframe ในนุ่น
ฉันรู้ว่าdf.ix[:-1]
จะลบแถวสุดท้าย แต่ฉันไม่สามารถหาวิธีลบแถวแรกได้
คำตอบ:
groupby()
? ใช้งานได้ แต่จะส่งคืนคอลัมน์ที่ซ้ำกันในดัชนีdf=pd.DataFrame({'v':np.arange(10).tolist()*2,'g':['a']*10+['b']*10});df.groupby('g').apply(lambda x: x.iloc[3:])
df=df.iloc[3:9]
?
pd.concat()
ถ้าใช้วิธีนี้คุณสามารถใช้ร่วมกับ บางสิ่งเช่นdf2 = pd.concat([df.iloc[:3],df.iloc[10:]])
.
ฉันคิดว่าวิธีการที่ชัดเจนกว่านี้คือใช้การดรอป
ไวยากรณ์คือ:
df.drop(label)
และตามที่ระบุโดย @tim และ @ChaimG สิ่งนี้สามารถทำได้ในสถานที่:
df.drop(label, inplace=True)
วิธีหนึ่งในการดำเนินการนี้อาจเป็น:
df.drop(df.index[:3], inplace=True)
และอีกการใช้งาน "ในสถานที่":
df.drop(df.head(3).index, inplace=True)
drop
สามารถคำนวณได้แม้ในที่ (ไม่มีการมอบหมายพิเศษ) เร็วขึ้นและง่ายขึ้น!
df.drop(label, inplace=True)
df = df.iloc[n:]
n ลดแถว n แรก
คุณสามารถใช้การแบ่งแบบหลาม แต่โปรดทราบว่าไม่ใช่การใช้งานแบบแทน
In [15]: import pandas as pd
In [16]: import numpy as np
In [17]: df = pd.DataFrame(np.random.random((5,2)))
In [18]: df
Out[18]:
0 1
0 0.294077 0.229471
1 0.949007 0.790340
2 0.039961 0.720277
3 0.401468 0.803777
4 0.539951 0.763267
In [19]: df[3:]
Out[19]:
0 1
3 0.401468 0.803777
4 0.539951 0.763267
pandas
?
df.drop(df.index[[0,2]])
Pandas ใช้การกำหนดตัวเลขตามศูนย์ดังนั้น 0 คือแถวแรก 1 คือแถวที่สองและ 2 คือแถวที่สาม
วิธีง่ายๆคือใช้ tail (-n) เพื่อลบแถว n แถวแรก
df=df.tail(-3)
inp0 = pd.read_csv ("bank_marketing_updated_v1.csv", skiprows = 2)
หรือถ้าคุณต้องการที่จะทำใน dataframe ที่มีอยู่
เพียงทำตามคำสั่ง
header=3
อาร์กิวเมนต์ตัวสร้างซึ่งจะตั้งค่าแถวนั้นเป็นแถวส่วนหัว: stackoverflow.com/a/51822697/191246