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

如何在列名称的DatFarame中编写元字符

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

    我有CSV文件,所以,当用pandas解析这个文件时 ISO-8859-1 df_cols 只打印选定的列,但在执行时会出现错误,因为它有类似于 / ' 'Card Holder's Name', 'CVV/CVV2'

    #!/grid/common/pkgs/python/v3.6.1/bin/python3
    ##### Pandas Display Setting for the complete output on the terminal ####
    import pandas as pd
    
    pd.set_option('display.height', None)
    pd.set_option('display.max_rows', None)
    pd.set_option('display.max_columns', None)
    pd.set_option('display.width', None)
    pd.set_option('expand_frame_repr', True)
    
    df_list = pd.read_csv('/docs/Credit_Card.csv', encoding='ISO-8859-1')
    df_cols = df_list[['Card Type Full Name', 'Issuing Bank', 'Card Number', 'Card Holder's Name', 'CVV/CVV2', 'Issue Date', 'Expiry Date','Credit Limit']]
    print(df_cols)
    
    3 回复  |  直到 6 年前
        1
  •  1
  •   fuwiak    6 年前

    """Card Holder's Name""" 
    
        2
  •  1
  •   Chris Adams    6 年前

    尝试用转义单引号字符 \

    df_cols = df_list[['Card Type Full Name', 'Issuing Bank', 'Card Number', 'Card Holder\'s Name', 'CVV/CVV2', 'Issue Date', 'Expiry Date','Credit Limit']]
    
        3
  •  0
  •   Karn Kumar    6 年前

    df_list

    如前所述,有两种方法可以读取列,第一种方法基于名称,我们需要特别小心特殊/元字符,而第二种方法基于索引位置,我们不需要关心这一点,这对避免此故障稍微有用一些。

    df_list = pd.read_csv('/docs/Credit_Card.csv', encoding='ISO-8859-1',usecols=['Card Type Full Name', 'Issuing Bank', 'Card Number', 'Card Holder\'s Name', 'CVV/CVV2', 'Issue Date', 'Expiry Date','Credit Limit'])
    

    或者

    df_list = pd.read_csv('/docs/Credit_Card.csv', encoding='ISO-8859-1',usecols=[1, 2, 3, 4, 5, 6, 7, 10])