美文网首页
操作dataFrame

操作dataFrame

作者: 一笑乘风凉 | 来源:发表于2019-07-13 16:04 被阅读0次

    这几天在用dataFrame做算法的过程中,总数要不断查dataFrame,索性将用到了的操作dataFrame的方法记录下来,以便后续利用。
    一、删除dataFrame中的某些列

    df.drop(['a','b'],axis=1)
    

    二、pandas DataFrame的 applymap() 函数可以对DataFrame里的每个值进行处理,然后返回一个新的DataFrame

    df = pd.DataFrame({
        'a': [1, 2, 3, 4, 5],
        'b': [3, 6, 's', 'c', np.nan],
        'c': [6, 7, 8, 9, 0]
    })
    
    def str_float(x):
        if isinstance(x,str):
            pass
        else:
            return float(x)
        
    print(df.applymap(str_float))
    
    #打印输出:
         a    b    c
    0  1.0  3.0  6.0
    1  2.0  6.0  7.0
    2  3.0  NaN  8.0
    3  4.0  NaN  9.0
    4  5.0  NaN  0.0
    

    三、读取csv文件的指定的列:

    file_data = pd.read_csv(file_path, encoding=code, header=1,usecols=combin_items)
    #file_path:文件路径
    #usecols:要读取的列的list
    

    四、获取函数和列数

    df.columns.size   #列数 
    df.iloc[:,0].size    #行数 
    或者:
    df.shape[1] #获取列数
    df.shape[0] #获取行数
    len(df)  # 获取行数
    

    五、dataFrame根据字符串筛选数据

    file_data = file_data[file_data[condition_key].str.contains(a, na=False, regex=True)]
    # a = "sss"
    

    六、将dataFrame中的数据进行转化,字符转float
    (当字符转不了float时,会用nan代替)

        def strToFloat(fixData):
            for item in Items:
                fixData[item] = pd.to_numeric(fixData[item], errors='coerce')
            return fixData
    

    七、筛选出dataFrame中符合条件的数据

    fixData = file_data[pd.eval(num_condition_sum)]
    # 例如:num_condition_sum = 'df[\'key1\']>1'
    

    相关文章

      网友评论

          本文标题:操作dataFrame

          本文链接:https://www.haomeiwen.com/subject/obdxkctx.html