• Pandas 常见用法个人随笔


    以前在学校里,跑深度学习实验,数据都是规则的、同质化数值型数据,很少字符型,只需熟练掌握 numpy 来处理数组、矩阵即可。
    现在来工业级做推荐算法了,收集的数据大量都是字符型、异构的数据,因此需要 pandas 进行处理。乘着周末来好好梳理一下 pandas 的常见用法。
    主要参考书籍:

    • 《利用 Python 进行数据分析》pandas 之父
    • 《Python 数据科学手册》

    pandas 主要是用来处理表格型、异质型数据

    import pandas as pd
    from pandas import Series, DataFrame
    
    • Series 是一种一维的数值型对象,包含一个值序列 (.values) 和一个索引 (.index),默认索引是从 0 到 N-1
    obj = pd.Series([4, -2, 3, 4])
    # 有两个属性,values, index
    obj2 = pd.Series([4, -2, 3, 4], index=['d', 'b', 'c', 'a']
    
    
    
    

    https://stackoverflow.com/questions/59991397/attributeerror-dataframe-object-has-no-attribute-ix

    df.iloc[:, integer]
    
    .ix is removed
    
    By the way, df.loc[:,'col_header'] is for str or Boolean indexing (掩码,或者 index + columns)
    

    drop_duplicates() 用法

    # hot_user_set = set(all_data_expo_click.loc[all_data_expo_click['label'] == '1']['user_id'].drop_duplicates('user_id')) 
    hot_user_set = set(all_data_expo_click.loc[all_data_expo_click['label'] == '1']['user_id'].drop_duplicates('first'))
        
    # 只取一列就变为了 Serie, 然而Series 没有列名
    
    ValueError: keep must be either "first", "last" or False
    
    # 使用 value_counts() 命令
    
    df_train.porn.value_counts()
    df_train[df_train['newsExposure30Days'] <= 1]['newsExposure30Days'].value_counts()
    
    我一般先用 groupby 之后,然后 lang_type_df.count().sort_values()
    
    pandas 的一个 bug:
    
    train_infer_side_info = pd.concat([click_train_side_info, infer_side_info_dedup], axis=0).fillna("no value").astype(str)
    
    # 假如 click_train_side_info 和 infer_side_infor_dudup 中列名一致,但是两者的列顺序是不一致的,这会导致 concat 后的表的列的顺序可能也无法保障。
    
    在这时候,如果用 train_infer_side_info_array = np.array(train_infer_side_info) 那么对应到 array 里面的列的顺序可能是不一致的。
    
    解决办法:
          train_infer_side_info = train_infer_side_info[click_train_side_info.columns]  # 保持原来的列顺序
    
  • 相关阅读:
    思岚 激光雷达 A3 使用官方sdk读取数据
    思岚激光雷达 开箱使用
    ubuntu 更新软件失败
    ubuntu 安装tftp
    Ubuntu 安装Telnet服务
    【博客搬至CSDN】
    【RabbitMQ】一文带你搞定springboot整合RabbitMQ涉及消息的发送确认,消息的消费确认机制,延时队列的实现
    基于JVisualVM的可视化监控
    LCN解决分布式事务原理解析+项目实战(原创精华版)
    springboot 用监听器统计在线人数案例分析
  • 原文地址:https://www.cnblogs.com/Gelthin2017/p/15614594.html
Copyright © 2020-2023  润新知