• Python 数据分析函数汇总


    常用模块

    import pandas as pd
    
    • 1

    常用函数

    1、pd.read_csv(): 读取csv文件

    Data = pd.read_csv('Data.csv',sep=',',dtype=object)
    
    • 1

    2、pd.to_csv(): 写入csv文件

    链接: link

    3、head(): 返回前n行的dataframe

    head() 函数:返回前n行的dataframe。默认参数为5

    import pandas as pd
    Data = pd.read_csv('Data.csv',sep=',',dtype=object)
    print(Data.head(6))
    
    • 1
    • 2
    • 3

    4、shape: 数据集大小

    shape函数的作用是查看行数和列数。

    import pandas as pd
    Data = pd.read_csv('Data.csv',sep=',',dtype=object)
    print(Data.shape)
    
    • 1
    • 2
    • 3

    5、loc[],iloc[]: 选择数据

    (1)loc[]函数:按标签取数据
    loc[行索引,列名/column](如果第二个参数的个数是全部即 : ,可以省略不写)。

    print(Data.loc[1,'name'])    # 索引1(行),名为‘name’的列
    
    • 1

    (2)iloc[]函数:按位置索引取数据
    iloc[行索引,列索引](没有逗号及以后就是默认列为所有列)

    print(Data.iloc[1,0])   # 第2行第1列的值
    print(Data.iloc[-5:,[0,2,4,6]])  # 最后5行第1,3,5,7列的值
    
    • 1
    • 2

    6、isna().any(axis=0)/pd.isnull().any(axis=0): 数据集每列信息是否有为空值

    any () 函数用于判断给定的可迭代参数 iterable 是否都为 False,如果是,any ()操作后的结果返回 False,如果给定的可迭代参数 iterable其中有一个为 True,any ()操作后的结果则返回 True。
    axis=0:方向沿着列;axis=1方向沿着行,默认axis=0

    print(Data.isna().any())
    print(Data.isna().any(axis=0))
    print(Data.isnull().any(axis=0))
    
    • 1
    • 2
    • 3

    7、value_counts(): 对每个项进行计数

    value_counts() :返回一个序列 Series,该序列包含每个值的数量。i.e. 对于数据框中的任何列,value-counts () 方***返回该列每个项的计数。
    参数:
    normalize = True :返回的对象将包含各个值的相对频率(默认False)
    ascending = True:升序(默认False)
    dropna = False:对无效值进行计数(默认True)

    print(Data.Language.value_counts())
    
    • 1

    8、max(),min(),mean(),std(),var(),mode(),median(): 最大值,最小值,平均值,标准差,方差,中位数

    9、unique():返回的是去重之后的不同值

    print(Data.Language.nunique())
    
    • 1

    10、nunique():直接返回不同值的个数

    print(Data.Language.tolist())
    
    • 1

    11、quantile():计算四分位数

    当q=0.25 0.5 0.75 时,就是在计算四分位数。

    print(Data.iloc[:,[2,6]].quantile(0.25))
    
    • 1

    12、str.len():用于确认每个字符串的长度。此方法仅适用于一系列字符串。

    由于这是一个字符串方法,因此必须在每次调用.str之前添加前缀。否则会产生错误。

    print(Data['Name'].str.len())
    
    • 1

    13、dropna():去掉有缺失数据的行

    DataFrme.dropna(axis=0,how=’any’,thresh=None,subset=None,inplace=False)
    参数:
    axis: 默认axis=0。0为按行删除,1为按列删除
    how: 默认 ‘any’。 ‘any’指带缺失值的所有行/列; 'all’指清除一整行/列都是缺失值的行/列
    thresh: int,保留含有int个非nan值的行
    subset: 删除特定列中包含缺失值的行或列
    inplace: 默认False,即筛选后的数据存为副本,True表示直接在原数据上更改

    print(Data.dropna())
    
    • 1

    14、fillna():用指定的值去填充dataframe中的缺失值

    df.fillna(a)
    其中:参数a表示的是常数或字典,若a为常数,则用常数a填充缺失值,若a为字典,则表示第key列的缺失值用key对应的value值填充,如:df.fillna({0:10,1:20}),表示用10去填充第0列的缺失值,用20去填充第1列的缺失值;
    inplace为可选参数,默认为False,表示不修改原对象,若指定inplace=True,则直接修改原对象。
    fillna()函数的返回值:若指定inplace=True,则函数返回值为None,若未指定,则函数返回填充缺失值后的数据。

    Data.fillna({'Graduate_year':2022, 'Language':'Python', 
                 'Achievement_value':Data.Achievement_value.mean().round(0)}, inplace=True)
    res = Data.fillna({'Graduate_year':2022, 'Language':'Python', 
                 'Achievement_value':Data.Achievement_value.mean().round(0)})
    
    • 1
    • 2
    • 3
    • 4

    15、duplicated():查找并判断数据表中的重复值

    当两条记录中所有的数据都相等时duplicated函数才会判断为重复值
    duplicated支持从前向后(first),和从后向前(last)两种重复值查找模式
    默认是从前向后进行重复值的查找和判断,也就是后面的条目在重复值判断中显示为True

    参数
    subset: 列标签
    keep: {‘first’, ‘last’, False}, 默认值 ‘first’
    first: 保留第一次出现的重复项。
    last: 删除重复项,仅保留最后一次出现的重复项
    False: 删除所有重复项
    inplace:布尔值,默认为False,是否删除重复项或返回副本

    print(Data.duplicated()) 
    print(Data.duplicated(subset=None, keep='first')) 
    Data.duplicated().sum() #计算有多少个重复值
    
    • 1
    • 2
    • 3

    16、drop_duplicates():删除数据表中的重复值,判断标准和逻辑与duplicated函数一样

    print(Nowcoder.drop_duplicates())
    
    • 1

    17、pd.to_datetime():将给定的数据按照指定格式转换成日期格式

    to_datetime(data,error = ‘raise’,format=None)
    data:输入
    errors:错误数据处理
    format:日期格式

    import pandas as pd
    Data = pd.read_csv('Data.csv',sep=',',dtype=object)
    Data['Time'] = pd.to_datetime(Data['Time'],format='%Y-%m-%d')
    Data['Time'] = pd.to_datetime(Data['Time'],format='%Y-%m-%d %H:%M:%S')
    
    • 1
    • 2
    • 3
    • 4

    #to_datetime默认有时间精度,.dt.date去掉分钟,得到日期列表

    b['date'] = pd.to_datetime(Data.date).dt.date
    
    • 1

    18、pd.DataFrame():将数据转换成表格格式

    #  将json文件转换为表格形式
    import pandas as pd
    import json
    
    with open('Nowcoder.json', 'r') as f:
        data = json.loads(f.read())
    print(pd.DataFrame(data))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    19、groupby():将数据根据某个(多个)字段划分为不同的群体(group)

    链接: link

    group = Data.groupby("company")
    
    • 1
  • 相关阅读:
    力扣:392.判断子序列
    C调用Objective-C的类和方法
    前端设计模式——过滤器模式
    PV操作经典例题
    脉冲编码器A、B、Z相正余弦波转换为RS-485输出
    一文带你深入理解【Java基础】· 泛型
    2021年Javascript最常见的面试题以及答案
    【JavaEE】网络原理---TCP协议的易懂图文详解(确认应答、超时重传、连接管理、滑动窗口、流量控制)
    【计算机视觉 | 语义分割】语义分割常用数据集及其介绍(五)
    C++构造函数和析构函数
  • 原文地址:https://blog.csdn.net/weixin_44241793/article/details/126280437