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'))
输出结果如下:
传入一个由多个标签组成的数组,可以删除多项,如下所示:
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']))
输出结果如下:
删除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']))
输出结果如下:
要删除列,需要指定列的索引,还需要用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))
输出结果:
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)
输出结果如下:
删除重复元素
出于多种原因,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())
输出结果如下:
通常情况,所有重复的行都需要从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())
输出结果如下: