Python | pandas相关函数的使用教程+简单实例汇总

文章目录

  • sort_values
    • 使用方式
    • 应用实例
  • drop_duplicates
    • 使用方式
    • 应用实例

pandas是Python处理数据时最常用的工具包之一。本文介绍结合自身的实践经历,汇总相关函数的使用方法,供读者参考。
以下内容都需要导入pandas工具包

import pandas as pd

sort_values

使用方式

df.sort_values(by, axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last')

参数说明如下:
axis:{0 or ‘index’, 1 or ‘columns’}, default 0,默认按照列排序,即纵向排序;如果为1,则是横向排序。
by:str or list of str;如果axis=0,那么by=“列名”;如果axis=1,那么by=“行名”。
ascending:布尔型,True则升序,如果by=[‘列名1’,‘列名2’],则该参数可以是[True, False],即第一字段升序,第二个降序。
inplace:布尔型,是否用排序后的数据框替换现有的数据框。
kind:排序方法,{‘quicksort’, ‘mergesort’, ‘heapsort’}, default ‘quicksort’。似乎不用太关心。
na_position:{‘first’, ‘last’}, default ‘last’,默认缺失值排在最后面。

应用实例

df = pd.DataFrame({'b':[1,2,3,2],'a':[4,3,2,1],'c':[1,3,8,2]},index=[2,0,1,3]) 
Out[5]: 
   b  a  c
2  1  4  1
0  2  3  3
1  3  2  8
3  2  1  2
df.sort_values(by='b') #等同于df.sort_values(by='b',axis=0)
Out[6]: 
   b  a  c
2  1  4  1
0  2  3  3
3  2  1  2
1  3  2  8
df.sort_values(by=['b','a'],axis=0,ascending=[False,True])
Out[7]: 
   b  a  c
1  3  2  8
3  2  1  2
0  2  3  3
2  1  4  1
df.sort_values(by=3,axis=1) #必须指定axis=1
Out[8]: 
   a  b  c
2  4  1  1
0  3  2  3
1  2  3  8
3  1  2  2
df.sort_values(by=[3,0],axis=1,ascending=[True,False])
Out[9]: 
   a  c  b
2  4  1  1
0  3  3  2
1  2  8  3
3  1  2  2

注意:指定多列(多行)排序时,先按排在前面的列(行)排序,如果内部有相同数据,再对相同数据内部用下一个列(行)排序,以此类推。如果内部无重复数据,则后续排列不执行。即首先满足排在前面的参数的排序,再排后面参数。

原文出自:https://www.jianshu.com/p/f0ed06cd5003

drop_duplicates

使用方式

df.drop_duplicates(subset=['A','B','C'],keep='first',inplace=True)

参数说明如下:
subset:表示要进去重的列名,默认为 None。
keep:有三个可选参数,分别是 first、last、False,默认为 first,表示只保留第一次出现的重复项,删除其余重复项,last 表示只保留最后一次出现的重复项,False 则表示删除所有重复项。
inplace:布尔值参数,默认为 False 表示删除重复项后返回一个副本,若为 Ture 则表示直接在原数据上删除重复项。

应用实例

data = {'A':[1, 0, 1, 1], 'B':[0, 2, 5, 0], 'C':[4, 0, 4, 4], 'D':[1, 0, 1, 1]}
df = pd.DataFrame(data=data)
Out[3]: 
   A  B  C  D
0  1  0  4  1
1  0  2  0  0
2  1  5  4  1
3  1  0  4  1
df.drop_duplicates()
Out[4]: 
// 删除了第4列
   A  B  C  D
0  1  0  4  1
1  0  2  0  0
2  1  5  4  1
df.drop_duplicates(keep='last')
Out[6]: 
// 删除了第0列
   A  B  C  D
1  0  2  0  0
2  1  5  4  1
3  1  0  4  1
df.drop_duplicates(keep='last').reset_index(drop=True)
Out[8]: 
// 使用reset_index函数后,可以将行标签重新从0开始排序
   A  B  C  D
0  0  2  0  0
1  1  5  4  1
2  1  0  4  1
df.drop_duplicates(keep=False)
Out[9]: 
// 删除了第0列和第3列
   A  B  C  D
1  0  2  0  0
2  1  5  4  1
df.drop_duplicates(subset=['D'], keep=False)
Out[11]: 
// 删除了第0,2,3列,他们的D列都是1
   A  B  C  D
1  0  2  0  0

原文出自:http://c.biancheng.net/pandas/drop-duplicate.html

你可能感兴趣的:(#,工程化,矩阵,算法,线性代数)