• pandas.DataFrame.from_dict的使用介绍


    Pandas几个星期不用,差不多又快全部忘记了。便于记忆,还是写一些痕迹,加深记忆。

    参考链接:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.from_dict.html

    这是一个类方法,创建一个df对象。

    Parameters

    datadict

    Of the form {field : array-like} or {field : dict}.

    orient{‘columns’, ‘index’}, default ‘columns’

    The “orientation” of the data. If the keys of the passed dict should be the columns of the resulting DataFrame, pass ‘columns’ (default). Otherwise if the keys should be rows, pass ‘index’.

    dtypedtype, default None

    Data type to force, otherwise infer.

    columnslist, default None

    Column labels to use when orient='index'. Raises a ValueError if used with orient='columns'.

    对于参数的设置,datadict在默认下,传入参数为{key: {key: value}}或者{key:[...]}

    这样的情况下,使用默认的orient属性,key将当做columns使用。

    In [22]: mydict = {'name':{1:'sidian'},'age':{2:'18'}}                                    
    
    In [23]: pd.DataFrame.from_dict(mydict)                                                   
    Out[23]: 
         name  age
    1  sidian  NaN
    2     NaN   18
    

      这是使用了字典嵌套字典的写法,外层字典的key为columns,values内的dict的keys为rows的名称,缺省的值用了NAN

    当修改orient的默认值'columns'为'index',内部的key为columns,外部的key为rows

    In [25]: pd.DataFrame.from_dict(mydict,orient='index')                                                          
    Out[25]: 
               1    2
    name  sidian  NaN
    age      NaN   18
    

      当时使用字典嵌套字典的时候,设置了orient='index'后,通过设置columns只会显式,在原df中已经存在的columns

    In [29]: pd.DataFrame.from_dict(mydict,orient='index', columns=[2,3])                                           
    Out[29]: 
          2    3
    age  18  NaN
    
    In [30]: pd.DataFrame.from_dict(mydict,orient='index', columns=[3,4])                                           
    Out[30]: 
    Empty DataFrame
    Columns: [3, 4]
    Index: []
    

      pd.DataFrame.from_dict的类方法在使用字典套字典的形式还是比较特别的,下面使用链接中的案例key与list的形式。

    In [32]: data = {'col_1': [3, 2, 1, 0], 'col_2': ['a', 'b', 'c', 'd']}                                          
    
    In [33]: pd.DataFrame.from_dict(data)                                                                           
    Out[33]: 
       col_1 col_2
    0      3     a
    1      2     b
    2      1     c
    3      0     d
    

      这个rows的编号,自动生成,keys为columns的名称。

    设置orient='index',key将变成rows的index,rows会变成默认的0,1,2,3...

    In [34]: pd.DataFrame.from_dict(data,orient='index')                                                            
    Out[34]: 
           0  1  2  3
    col_1  3  2  1  0
    col_2  a  b  c  d
    

      通过设置columns,来替换显式的默认columns的名称.

    In [35]: pd.DataFrame.from_dict(data,orient='index',columns=list('abcd'))                                       
    Out[35]: 
           a  b  c  d
    col_1  3  2  1  0
    col_2  a  b  c  d
    

      

    工作中碰到,就是一个普通的dict,也就是说value是不可迭代的对象,必须设置orient='index',要不然会报错,也就是dict的key不能用于columns。

    In [41]: new_dict                                                                                               
    Out[41]: {'name': 'sidian', 'age': 18}
    
    In [42]: pd.DataFrame.from_dict(new_dict, orient='index')                                                       
    Out[42]: 
               0
    name  sidian
    age       18
    
    In [43]: pd.DataFrame.from_dict(new_dict, orient='index', columns=['info'])                                     
    Out[43]: 
            info
    name  sidian
    age       18
    
    In [44]:         
    

      

  • 相关阅读:
    汽车最强大脑ECU和单片机是什么关系
    自动驾驶汽车操作系统简述
    怎样区分线性和非线性_线性与非线性的区别(线性分析、线性模型)
    ADAS最全整理
    carsim2016 与 MATLAB2018 联合仿真send to simulink后编译不成功解决方法
    基于Jenkins的.Net Core应用自动部署--学习一
    vue学习一
    sql server解析xml字段
    C# string[] 转list<long>
    C++神奇算法库——#include<algorithm>
  • 原文地址:https://www.cnblogs.com/sidianok/p/14261262.html
Copyright © 2020-2023  润新知