Python学习第二十四天,Pandas学习(六)

86 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第24天,点击查看活动详情

数据删除

使用drop()方法

df.drop(labels=None,axis=0,index=None,columns=None,inplace=False)

labels:表示行标签或列标签
axis:axis=0表示按行删除,axis=1表示按列删除
index :删除行,默认值为None
columns:删除列,默认值为None
inplace:对原数组作出修改并返回一个新数组。默认值为False,如果值为True,
        那么原数组直接就将被替换

删除列数据

data=[[75,56,80],[56,45,50],[60,67,67]]
index=['张三','李四','王五']
columns=['数学','语文','英语']
df=pd.DataFrame(data=data,index=index,columns=columns)

print(df)
print('--------------')
df1=df.drop(['数学'],axis=1,inplace=False)
print(df1)
print('--------------')
df2=df.drop(columns='数学', inplace=False)
print(df2)
print('--------------')
df.drop(labels='数学', axis=1,inplace=True)
print(df)

结果:

image.png

删除行数据

data=[[75,56,80],[56,45,50],[60,67,67]]
index=['张三','李四','王五']
columns=['数学','语文','英语']
df=pd.DataFrame(data=data,index=index,columns=columns)

print(df)
print('--------------')
df1=df.drop(['张三'],axis=0,inplace=False)
print(df1)
print('--------------')
df2=df.drop(index='张三', inplace=False)
print(df2)
print('--------------')
df.drop(labels='张三', axis=0,inplace=True)
print(df)

结果:

image.png

删除指定条件数据

data=[[75,56,80],[56,45,50],[50,67,67]]
index=['张三','李四','王五']
columns=['数学','语文','英语']
df=pd.DataFrame(data=data,index=index,columns=columns)

print(df)
print('--------------')
df.drop(df[df['数学']<60].index[:], inplace=True)
print('删除数学成绩小于60的数据\n',df)

结果:

image.png

数据排序

使用sort_values()方法

df.sort_values(by,axis=0,ascending=True,inplace=False,
                kind='quicksort ,na_position='last ,ignore_index=False)
                
by:要排序的名称列表

axis:轴,0表示行,1表示列,默认行排序

ascending:升序或降序排序,布尔值,指定多个排序可以使用布尔值列表,降序

inplace:布尔值,默认值为False,如果值为True,则就地排序

kind:指定排序算法,值为quicksort(快速排序)、mergesort(混合排序)或heapsort(堆排)
        ,默认值为quicksort
        
na_position:空值(NaN)的位置,值为first空值在数据开头,last空值在最后,默认值为last

ignore_index:布尔值,是否忽略索引,值为True标记索引(从0开始按顺序的整数值),
            值为False则忽略索引

举例:

df=pd.read_excel(r'house.xlsx')
print(df.head())
print('-----------------------------------')
df=df.sort_values(by='建筑面积')
print('排序后的数据\n',df.head())

结果:

image.png