【问题标题】:Transfer pandas dataframe column names to dictionary将 pandas 数据框列名传输到字典
【发布时间】:2019-07-07 13:38:03
【问题描述】:

我正在尝试将 pandas 数据框列名转换为字典。不太担心数据框中的实际数据。

假设我有一个这样的示例数据框,我现在不太担心索引:

Col1 Col2 Col3 Col4
--------------------
 a    b    c    a
 b    d    e    c

我想得到一个字典的输出,例如:

{'Col1': 0, 'Col2': 1, 'Col3': 2, 'Col4': 3}

不必太担心它们被打印出来的顺序,只要字典中分配的键保持每个列名的顺序即可。

【问题讨论】:

    标签: python pandas dataframe dictionary data-analysis


    【解决方案1】:

    直接理解为:

    代码:

    {c: i for i, c in enumerate(df.columns)}
    

    测试代码:

    import pandas as pd
    
    df = pd.DataFrame({'date': ['2015-01-01', '2015-01-02', '2015-01-03'],
                       'value': ['a', 'b', 'c'],
                       'num': [1, 2, 3]
                       })
    
    print(df)
    print({c: i for i, c in enumerate(df.columns)})
    

    结果:

             date  num value
    0  2015-01-01    1     a
    1  2015-01-02    2     b
    2  2015-01-03    3     c
    
    {'date': 0, 'num': 1, 'value': 2}
    

    【讨论】:

      【解决方案2】:

      您也可以使用 pandas.Index 方法 get_loc,而不是像 @StephenRauch 发布的那样使用枚举:

      {i:df.columns.get_loc(i) for i in df.columns}
      

      使用斯蒂芬的设置:

      import pandas as pd
      
      df = pd.DataFrame({'date': ['2015-01-01', '2015-01-02', '2015-01-03'],
                         'value': ['a', 'b', 'c'],
                         'num': [1, 2, 3]
                         })
      
      print(df)
      print({i:df.columns.get_loc(i) for i in df.columns})
      

      输出:

               date value  num
      0  2015-01-01     a    1
      1  2015-01-02     b    2
      2  2015-01-03     c    3
      
      {'date': 0, 'value': 1, 'num': 2}
      

      【讨论】:

        猜你喜欢
        • 2017-04-22
        • 2015-07-24
        • 2013-09-12
        • 2016-04-07
        • 1970-01-01
        • 1970-01-01
        • 2014-06-12
        相关资源
        最近更新 更多