pandas移花接木
數據准備兩表:
我們接下來要進行的操作:
增
- 將兩表進行合並
# 把兩張表合並,但是這樣有問題,索引會重復的進行0-19
students = page_001.append(page_002)
students
# 我們需要做一步操作,將索引全部重新排列,reset_index同時還要將原索引刪除drop=True,這樣就OK
students.reset_index(drop=True)
- 追加一行數據到最后
# 這里必須開啟ignore_index告訴pandas直接給我加,不要管索引,否則會報錯
append_last = pd.Series({'ID':40, 'Name':'New_friend', 'Score': 90})
# 修改了數據后記住重新把對象引用給students,否則只是修改了副本
students= students.append(append_last,ignore_index=True)
圖太長,放結果那幾行
- 追加一行數據到中間的位置,例如索引為20的前面
這里可以先把數據拆分為兩部分,一部分為前20,一部分為后面的
part1 = students[:20]
part2 = students[20:]
part1 = part1.append(pd.Series({'ID':100, 'Name': 'HHHHHH', 'Score':1111}),ignore_index=True)
OK合並成功
part1.append(part2,ignore_index=True)
改
修改數據有兩種做法,原理不同結果相同-條條大路通羅馬
- 1.修改其中的一行數據,把38行的Student_39改了
直接修改源數據
students.at[38, 'Name'] = 'HI'
students
- 2.DataFrame降維度后得Series對象,我們可以生成Series對象,直接替換掉舊的
# 生成新數據行
new_data = pd.Series({'ID':39 , 'Name': 'HELLO', 'Score': 100})
# 篩選出要替換的行,用iloc或者loc都行,這里我用iloc
students.iloc[39] = new_data
students
刪
drop函數接收一個可迭代對象
刪除指定索引的行
students.drop(index=[0,1,2],inplace=True)
students
刪除某個范圍內的行數據
students.drop(index=range(10,15),inplace=True)
students
查
將某個區間的Name修改為空值,篩選出這部分數據,並進行刪除
for i in range(20, 25):
students.at[i, 'Name'] = ''
students
drop接收一個可迭代對象,那么我們就要先找出空值的數據
missing = students.loc[students['Name'] == '']
然后將空數據行的索引傳給drop
students.drop(index=missing.index,inplace=True)
students
以上就是關於pandas操作行的集錦