zoukankan      html  css  js  c++  java
  • Python的Pandas库简述

    pandas 是 python 的数据分析处理库
    import pandas as pd

    1、读取CSV、TXT文件

    foodinfo = pd.read_csv("pandas_study.csv", encoding = "utf-8")

    2、查看前N条、后N条信息

    foodinfo.head(N)
    foodinfo.tail(N)

    3、查看数据框的格式,是DataFrame还是ndarray

    print(type(foodinfo))
    # 结果:<class 'pandas.core.frame.DataFrame'>

    4、查看有哪些列

    foodinfo.columns

    5、查看有几行几列

    foodinfo.shape

    6、打印某一行、某几行数据

    foodinfo.loc[0]
    foodinfo.loc[0:2]
    foodinfo.loc[[2, 5, 10]]    #注意里面是一个数组

    7、打印某一列、某几列数据

    foodinfo["dti"]
    foodinfo[["int_rate", "dti"]]    #注意里面是一个数组
    # 或者:
    columns = ["int_rate", "dti"]
    foodinfo[columns]

    8、打印所有列的数据类型

    foodinfo.dtypes

    9、对列的一些相关操作

    col_columns = foodinfo.columns.tolist()
    new_columus = []
    
    for c in col_columns:
    if c.endswith("s"):
    new_columus.append(c)
    print(c)
    
    foodinfo[new_columus]

    10、加减乘除:将每行都乘以100(加 减 乘 除 一样)

    foodinfo[["int_rate", "dti"]] * 100

    11、增加一列

    new_col = foodinfo["int_rate"] * 100
    foodinfo["new_col"]= new_col

    12、列之间的运算

    foodinfo["dti"] * foodinfo["int_rate"]

    13、查看列的最大值、最小值、平均值

    foodinfo["int_rate"].max()
    foodinfo["int_rate"].min()
    foodinfo["int_rate"].mean()

    14、按某个字段排序 - 升序

    # inplace是否新建一个dataframe,True不需要
    foodinfo.sort_values("int_rate_one", inplace = True)
    
    # 按某个字段排序 - 降序
    foodinfo.sort_values("int_rate_one", inplace = True, ascending = False)

    15、查看数据框的一些属性:最大、最小、均值、四分位数等

    foodinfo.describe()

    16、空值相关的操作

    pin = foodinfo["pin"]
    pin_isnull = pd.isnull(pin) # 查看所有空值
    pin_isnull_list = foodinfo[pin_isnull] # 找出所有为空值的行
    len(pin_isnull_list)        # 空值的个数

    17、缺失值相关操作

    # 简单的处理办法就是过滤掉null值
    books = foodinfo["life_cycle_books"]
    book_isnull = pd.isnull(books)
    book_list_isnull = foodinfo["life_cycle_books"][book_isnull == False]
    mean = sum(book_list_isnull) / len(book_list_isnull)    # 计算平均值

    18、根据条件打印某列数据

    foodinfo[foodinfo["life_cycle_books"] == 1]

    19、数据透视表

    import numpy as np
    # index:要透视的列
    # values:要比较的关系列
    # aggfunc:具体的关系,默认值:np.mean
    data_foodinfo = foodinfo.pivot_table(index = ["life_cycle_books", "potential_value_books"], values = "risk_level", aggfunc = np.mean)
    print(data_foodinfo)

    20、删除缺失值

    # 所有行
    na_foodinfo = foodinfo.dropna(axis = 1)
    # 可以指定列
    na_foodinfo = foodinfo.dropna(axis = 0, subset = ["life_cycle_books", "potential_value_books"])

    21、自由取数据 如:取80行 life_cycle_books列

    foodinfo.loc[80, "life_cycle_books"]

    22、重新排索引

    foodinfo.reset_index(drop = True)

    23、自定义函数:返回空值个数

    def count_null_columns(column):
        column_null = pd.isnull(column)
        list_null = column[column_null]
        count_null = len(list_null)
        return count_null
    foodinfo.apply(count_null_columns)

    24、Series

    # pandas 三种数据结构
    # Series
    # DataFrame
    # Panel
    from pandas import Series

    25、Series显示某一列数据

    series_name = taitan["Name"]
    series_name.values

    26、定位某行某列

    series_name = taitan["Name"]
    series_age = taitan["Age"]
    series_custom = Series(series_age.values, index = series_name)
    series_custom[["Ahlin, Mrs. Johan (Johanna Persdotter Larsson)", "Asplund, Mrs. Carl Oscar (Selma Augusta Emilia Johansson)"]]
    # 说明:series_custom[""] 按列取 series_custom[[""]] 按行取

    27、取5-10行数据,和上面一样:

    series_custom[5: 10]

    28、index变换

    old_index = series_custom.index.tolist()
    sort_index = sorted(old_index)
    new_index = series_custom.reindex(sort_index)
    print(new_index)

    29、Series按索引和值排序的函数

    sc1 = series_custom.sort_index()
    print(sc1)
    sc2 = series_custom.sort_values()
    print(sc2)

    30、Series 过滤

    series_custom > 0.5
    series_custom[series_custom > 0.5]
    series_custom[(series_custom > 0.5) & (series_custom < 0.9)]
    # 注:&、| 都是单符号

    31、DataFrame

    # Series是一行数据,DataFrame是多行数据
    # DataFrame 可以看成由多个 Series 组成的
    df = pd.read_csv("titanic_train.csv")

    32、DataFrame的索引变换

    # drop 是否新创建一个DF,True否 False是(表示还要保留Name这一列,否则一会无法进行计算)
    df_name = df.set_index("Name", drop = False)

    33、DataFrame查看某一类型的数据

    types = df_name.dtypes
    float_columns = types[types.values == "float64"].index
    df_name[float_columns]

    34、DataFrame求方差

    float_df = df_name[float_columns]
    float_df.apply(lambda x: np.std(x))
  • 相关阅读:
    信息安全学习笔记1
    Linux学习笔记4------磁盘分区(问答形式)
    Linux学习笔记3-------添加磁盘并分区
    用for循环打印三角形
    包机制
    运算符
    变量、常量、作用域
    数据类型转换
    数据的基本类型
    Java运行原理的简单理解
  • 原文地址:https://www.cnblogs.com/hunttown/p/7089923.html
Copyright © 2011-2022 走看看