web-dev-qa-db-fra.com

Erreur clé lors de la sélection des colonnes dans le cadre de données pandas après read_csv

J'essaie de lire un fichier CSV dans un cadre de données pandas et de sélectionner une colonne, mais je continue à avoir une erreur clé.

Le fichier est lu avec succès et je peux afficher la trame de données dans un ordinateur portable iPython, mais lorsque je souhaite sélectionner une colonne autre que la première, une erreur clé est générée.

J'utilise ce code:

import pandas as pd

transactions = pd.read_csv('transactions.csv',low_memory=False, delimiter=',', header=0, encoding='ascii')
transactions['quarter']

Voici le fichier sur lequel je travaille: https://www.dropbox.com/s/imd7hq2iq23hf8o/transactions.csv?dl=0

Je vous remercie! 

7
Harry M

utilisez sep='\s*,\s*' pour vous occuper des espaces dans les noms de colonnes:

transactions = pd.read_csv('transactions.csv', sep='\s*,\s*',
                           header=0, encoding='ascii', engine='python')

sinon, vous pouvez vous assurer que votre fichier CSV ne contient pas d'espaces non cités et utiliser votre commande (aucune modification)

prouver:

print(transactions.columns.tolist())

Sortie:

['product_id', 'customer_id', 'store_id', 'promotion_id', 'month_of_year', 'quarter', 'the_year', 'store_sales', 'store_cost', 'unit_sales', 'fact_count']
29
MaxU

L'erreur de clé survient généralement si la clé ne correspond à aucun des noms de colonne de dataframe 'exactement':

Vous pouvez aussi essayer:

import csv
import pandas as pd
import re
    with open (filename, "r") as file:
        df = pd.read_csv(file, delimiter = ",")
        df.columns = ((df.columns.str).replace("^ ","")).str.replace(" $","")
        print(df.columns)
0
beta

J'ai finalement obtenu la réponse pour lire une colonne spécifique:

import pandas as pd  

df=pd.read_csv('titanic.csv',sep='\t')

df['Sex']   

Parce que pandas separator utilise \t. J'espère que cela fonctionne pour vous.

0
Bhaskar arya