pandas中DataFrame的常用 *** 作

pandas中DataFrame的常用 *** 作,第1张

数据集的信息
  • 使用info()方法输出数据集的信息
  • 举例
    import numpy as np
    import matplotlib.pyplot as plt
    import matplotlib
    import pandas as pd
    import sklearn
    # matplotlib.rc("font",family='FangSong')
    
    df = pd.read_csv('data\boston.csv')
    # 读取数据集
    
    df = df.sample(500, replace=False, random_state=1, axis=0)
    # 随机取其中十行数据,随机数种子设置为1
    print (df.info())
    
    输出结果为:
    
    Int64Index: 500 entries, 307 to 203
    Data columns (total 14 columns):
     #   Column   Non-Null Count  Dtype  
    ---  ------   --------------  -----  
     0   CRIM     500 non-null    float64
     1   ZN       500 non-null    float64
     2   INDUS    500 non-null    float64
     3   CHAS     500 non-null    float64
     4   NOX      500 non-null    float64
     5   RM       500 non-null    float64
     6   AGE      500 non-null    float64
     7   DIS      500 non-null    float64
     8   RAD      500 non-null    float64
     9   TAX      500 non-null    float64
     10  PTRATIO  500 non-null    float64
     11  B        500 non-null    float64
     12  LSTAT    500 non-null    float64
     13  MEDV     500 non-null    float64
    dtypes: float64(14)
    memory usage: 58.6 KB
    None
    
    • non-null表示非空,当该项与数据项总数相等时候表示该数据集无缺失数据;
数据的展示
  • 当需要在控制台展示全部数据项时,可以通过:
    pd.set_option( 'display.max_columns', None)
    pd.set_option( 'display.max_rows', None)
    
    使得数据全部展示;
df.shape方法:
  • 输出df的形状,(x, y):表示共x行y列(不包括索引);
  • 其他 *** 作
    • df.shape[0]输出结果为x;
    • df.shape[1]输出结果为y;
平均数:
df["X"],mean()
统计数量:
  • 方法一
    len(set(df["X"].tolist()))
    
    • len()函数:返回对象(字符、元组、列表等)的长度或者项目个数;
    • set()函数;建立一个无序不重复元素集,可以进行关系测试,删除重复数据;
  • 方法二
    len(df["X"].unique())
    
    • unique()函数:对于一维数组或者列表,unique函数去除其中重复的元素,并按元素由大到小返回一个新的无元素重复的元组或者列表;
字符串离散化
  • 定义:把无限空间中有限的个体映射到有限的空间中去,以此提高算法的时空效率;通俗的说,离散化是在不改变数据相对大小的条件下,对数据进行相应的缩小。
  • 方法
    1. 建立行列数对应,数值全为零数组;
    2. 将符合条件的数据项,在数组中对应位置数值赋值为1;
  • 举例:
    import numpy as np
    import pandas as pd
    
    df = pd.DataFrame({"num":["A, C, D", "H, A, B", "C, B, F", "S, A, L"]})
    # 取出需要进行独热编码的数据列;
    
    temp_list = df["num"].str.split(", ").tolist()
    # 将该dataframe转换成列表;
    
    num_list = list(sorted(set([i for j in temp_list for i in j])))
    # 将列表数据取出,去重排序;
    
    zeros_df = pd.DataFrame(np.zeros((df.shape[0], len(num_list))), dtype=np.int16, columns=num_list)
    # 生成对应规模的全0dataframe;
    
    for i in range(df.shape[0]):
        zeros_df.loc[i, temp_list[i]] = 1
    # 将对应位置的数据更改为1
    
    letter_count = zeros_df.sum(axis=0)
    # 对字母出现的次数进行统计
    
    print(letter_count)
    
    final_list = letter_count.sort_values()
    # 需要时可按出现次数的多少进行排序
    
    输出结果为:
    A    3
    B    2
    C    2
    D    1
    F    1
    H    1
    L    1
    S    1
    dtype: int64
    

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/870241.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-13
下一篇 2022-05-13

发表评论

登录后才能评论

评论列表(0条)

保存