Pandas 删除数据

Pandas 删除数据,Pandas提供了一个用于删除操作的函数drop(),它返回不包含已删除索引及其元素的新对象。另外一种删除数据列的方式,就是对DataFrame对象应用del命令。通常情况,所有重复的行都需要从DataFrame对象中删除,Pandas库的drop_duplicateds()函数实现了删除功能,该函数返回删除重复行后的DataFrame对象。

删除Series对象数据

我们想从Series对象中删除一项,为此我们先定义一个含有四个元素的Series对象,各个元素标签均不相同。假如我们想删除标签为yellow项,用标签作为drop()函数的参数,就可以删除这一项,如下所示:

import pandas as pd
import numpy as np

ser = pd.Series(np.arange(4.), index=['red','blue','yellow','white'])
print(ser)
print('------------')
print(ser.drop('yellow'))

输出结果如下:
Pandas 删除数据

传入一个由多个标签组成的数组,可以删除多项,如下所示:

import pandas as pd
import numpy as np

ser = pd.Series(np.arange(4.), index=['red','blue','yellow','white'])
print(ser)
print('------------')
print(ser.drop(['blue','white']))

输出结果如下:
Pandas 删除数据

删除DataFrame对象数据

要删除DataFrame中的元素,需要指定元素两个轴的轴标签,如下所示:

import pandas as pd
import numpy as np

frame = pd.DataFrame(np.arange(16).reshape((4,4)),
                     index=['red','blue','yellow','white'],
                     columns=['ball','pen','pencil','paper'])
print(frame)
print('------------')
print(frame.drop(['blue','yellow']))

输出结果如下:
Pandas 删除数据

要删除列,需要指定列的索引,还需要用axis选项指定从哪个轴删除元素(从列的方向删除,axis的值为1),如下所示:

import pandas as pd
import numpy as np

frame = pd.DataFrame(np.arange(16).reshape((4,4)),
                     index=['red','blue','yellow','white'],
                     columns=['ball','pen','pencil','paper'])
print(frame)
print('------------')
print(frame.drop(['pen','pencil'], axis=1))

输出结果:
Pandas 删除数据

del 删除数据

Pandas DataFrame 读取 添加和删除有介绍另外一种删除数据列的方式,就是对DataFrame对象应用del命令,指定列名,如下所示:

import pandas as pd
import numpy as np

frame = pd.DataFrame(np.arange(16).reshape((4,4)),
                     index=['red','blue','yellow','white'],
                     columns=['ball','pen','pencil','paper'])
print(frame)
print('------------')
del frame['ball']
print(frame)

输出结果如下:
Pandas 删除数据

删除重复元素

出于多种原因,DataFrame对象可能包含重复的行,DataFrame对象的duplicated()函数可用来检测重复的行,返回元素为布尔型的Series对象,每个元素对应一行,如果该行与前面行重复,则元素为True,如何跟前面行不重复,则元素放回False,如下所示:

import pandas as pd

dframe = pd.DataFrame({'color':['white','white','red','red','white'],
                       'value':[2,1,3,3,2]})
print(dframe)
print('------------')
print(dframe.duplicated())

输出结果如下:
Pandas 删除数据

通常情况,所有重复的行都需要从DataFrame对象中删除,Pandas库的drop_duplicateds()函数实现了删除功能,该函数返回删除重复行后的DataFrame对象,如下所示:

import pandas as pd

dframe = pd.DataFrame({'color':['white','white','red','red','white'],
                       'value':[2,1,3,3,2]})
print(dframe)
print('------------')
print(dframe.drop_duplicates())

输出结果如下:
Pandas 删除数据

赞(0)

评论 抢沙发

评论前必须登录!