码迷,mamicode.com
首页 > 其他好文 > 详细

pandas操作行集锦

时间:2018-12-21 15:22:29      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:last   分数   修改   page   问题   img   不同   排列   new   

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操作行的集锦

pandas操作行集锦

标签:last   分数   修改   page   问题   img   不同   排列   new   

原文地址:https://www.cnblogs.com/lishi-jie/p/10155598.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!