zoukankan      html  css  js  c++  java
  • 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]  # 保持原来的列顺序
    
  • 相关阅读:
    c# yield关键字原理详解
    Linux环境基于CentOS7 搭建部署Docker容器
    关于c#中委托使用小结
    推荐一本好的c#高级程序设计教程
    WEB网站常见受攻击方式及解决办法
    判断URL是否存在
    提升高并发量服务器性能解决思路
    分享asp.net学习交流社区
    js中对arry数组的各种操作小结
    jQuery动态实现title的修改 失效问题
  • 原文地址:https://www.cnblogs.com/Gelthin2017/p/15614594.html
Copyright © 2011-2022 走看看