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操作行的集锦
原文地址:https://www.cnblogs.com/lishi-jie/p/10155598.html
时间: 2024-11-09 20:17:07