代码之家  ›  专栏  ›  技术社区  ›  Karn Kumar

如何获取索引位置和名称

  •  1
  • Karn Kumar  · 技术社区  · 6 年前

    我想从pandas数据帧中获取名称和索引位置,然后进入如下逻辑,只是想知道是否有更好的方法来处理这个问题。

    import pandas as pd
    
    df = pd.read_csv('/docs/Credit_Card.csv', encoding='ISO-8859-1')
    cols = df.columns
    col = [df.columns.get_loc(c) for c in df.columns if c in cols]
    print(pd.DataFrame(list(zip(cols, col)),columns=['index_Name', 'Index_Number']))
    

                 index_Name  Index_Number
    0        Card Type Code             0
    1   Card Type Full Name             1
    2          Issuing Bank             2
    3           Card Number             3
    4    Card Holder's Name             4
    5              CVV/CVV2             5
    6            Issue Date             6
    7           Expiry Date             7
    8          Billing Date             8
    9              Card PIN             9
    10         Credit Limit            10
    
    2 回复  |  直到 6 年前
        1
  •  1
  •   Zero    6 年前

    使用 dict {name: column_names: number: column_numering} 创建数据场。

    In [591]: pd.DataFrame({'index_Name': df.columns, 'Index_Number': range(len(df.columns))})
    Out[591]:
                 index_Name  Index_Number
    0        Card Type Code             0
    1   Card Type Full Name             1
    2          Issuing Bank             2
    3           Card Number             3
    4    Card Holder's Name             4
    5              CVV/CVV2             5
    6            Issue Date             6
    7           Expiry Date             7
    8          Billing Date             8
    9              Card PIN             9
    10         Credit Limit            10
    

    或使用

    In [621]: pd.DataFrame({'index_Name': df.columns}).rename_axis('index_Number').reset_index()
    Out[621]:
                 index_Name  Index_Number
    0        Card Type Code             0
    1   Card Type Full Name             1
    2          Issuing Bank             2
    3           Card Number             3
    4    Card Holder's Name             4
    5              CVV/CVV2             5
    6            Issue Date             6
    7           Expiry Date             7
    8          Billing Date             8
    9              Card PIN             9
    10         Credit Limit            10
    
        2
  •  2
  •   jezrael    6 年前

    import numpy as np
    
    print(pd.DataFrame(list(zip(df.columns, 
                                np.arange(len(df.columns)))),
                       columns=['index_Name', 'Index_Number']))
    

    类似于 numpy.c_ :

    print(pd.DataFrame(np.c_[df.columns, np.arange(len(df.columns))],
                       columns=['index_Name', 'Index_Number']))
    

    或:

    df1 = pd.Series(df.columns).reset_index()
    df1.columns = ['Index_Number','index_Name']