Как записать мета-символы внутри панд DatFarame в именах столбцов - PullRequest
0 голосов
/ 01 сентября 2018

У меня есть файл CSV Итак, при разборе этого файла с пандами с кодировкой ISO-8859-1. Тем не менее, я просто пытаюсь создать DataFrame 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 ]

0 голосов
/ 01 сентября 2018

Попробуйте экранировать символ одинарной кавычки с помощью \

df_cols = df_list[['Card Type Full Name', 'Issuing Bank', 'Card Number', 'Card Holder\'s Name', 'CVV/CVV2', 'Issue Date', 'Expiry Date','Credit Limit']]
0 голосов
/ 02 сентября 2018

Как предлагает d_kennetz, мы можем напрямую читать столбцы на основе имен или позиции индекса на самом DataFrame df_list, что сократит время и использование ресурсов (потребление памяти) для чтения всего CSV.

Как уже упоминалось, есть два способа чтения столбцов, сначала основанные на именах, где мы должны быть особенно осторожны со специальными / мета-символами, тогда как второй метод, основанный на позиции индекса, нам не нужно заботиться об этом, что немного больше полезно избегать этого глюка.

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'])

OR

df_list = pd.read_csv('/docs/Credit_Card.csv', encoding='ISO-8859-1',usecols=[1, 2, 3, 4, 5, 6, 7, 10])
0 голосов
/ 01 сентября 2018

попробуйте поставить имя столбца в три кавычки

"""Card Holder's Name""" 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...