Data
Stay hungry,Stay foolish!

导航

 

pandas移花接木

数据准备两表:

gaigai

我们接下来要进行的操作:

  • 将两表进行合并
# 把两张表合并,但是这样有问题,索引会重复的进行0-19
students = page_001.append(page_002)
students

# 我们需要做一步操作,将索引全部重新排列,reset_index同时还要将原索引删除drop=True,这样就OK
students.reset_index(drop=True)

gai gai

  • 追加一行数据到最后
# 这里必须开启ignore_index告诉pandas直接给我加,不要管索引,否则会报错
append_last = pd.Series({'ID':40, 'Name':'New_friend', 'Score': 90})
# 修改了数据后记住重新把对象引用给students,否则只是修改了副本
students= students.append(append_last,ignore_index=True)

图太长,放结果那几行

gai

  • 追加一行数据到中间的位置,例如索引为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)

gai

修改数据有两种做法,原理不同结果相同-条条大路通罗马

  • 1.修改其中的一行数据,把38行的Student_39改了
直接修改源数据
students.at[38, 'Name'] = 'HI'
students

gai

  • 2.DataFrame降维度后得Series对象,我们可以生成Series对象,直接替换掉旧的
# 生成新数据行
new_data = pd.Series({'ID':39 , 'Name': 'HELLO', 'Score': 100})
# 筛选出要替换的行,用iloc或者loc都行,这里我用iloc
students.iloc[39] = new_data
students

gai

drop函数接收一个可迭代对象

删除指定索引的行
students.drop(index=[0,1,2],inplace=True)
students

gai

删除某个范围内的行数据
students.drop(index=range(10,15),inplace=True)
students

gai

将某个区间的Name修改为空值,筛选出这部分数据,并进行删除

for i in range(20, 25):
    students.at[i, 'Name'] = ''
students

gai

drop接收一个可迭代对象,那么我们就要先找出空值的数据
missing = students.loc[students['Name'] == '']
然后将空数据行的索引传给drop
students.drop(index=missing.index,inplace=True)
students

gai

以上就是关于pandas操作行的集锦

posted on 2018-12-21 14:36  进击中的青年  阅读(1569)  评论(0编辑  收藏  举报