Je voudrais couper deux colonnes dans mon bloc de données.
Voici mon code pour ce faire:
import pandas as pd
df = pd.read_csv('source.txt',header=0)
cidf=df.loc[:,['vocab','sumCI']]
print(cidf)
Voici un échantillon de données:
ID vocab sumCI sumnextCI new_diff
450 statu 3.0 0.0 3.0
391 provid 4.0 1.0 3.0
382 prescript 3.0 0.0 3.0
300 lymphoma 2.0 0.0 2.0
405 renew 2.0 0.0 2.0
** Tout d'abord, j'ai eu cette erreur: **
KeyError: “None of [['', '']] are in the [columns]”'
Ce que j'ai essayé:
header
avec index 0
lors de la lecture du fichier,J'ai essayé de renommer les colonnes avec ce code:
df.rename(columns=df.iloc[0],inplace=True)
J'ai également essayé ceci:
df.columns = df.iloc[1]
df=df.reindex(df.index.drop(0))
A également essayé les commentaires dans ce lien
Aucune des réponses ci-dessus n'a résolu le problème.
D'après l'impression que vous avez publiée, il semble que vous ayez des espaces blancs comme délimiteurs. pd.read_csv
lira en utilisant ,
comme séparateur par défaut, vous devez donc le déclarer explicitement:
pd.read_csv('source.txt',header=0, delim_whitespace=True)
il suffit d'écrire du code pour créer un nouveau fichier CSV et d'utiliser un nouveau fichier
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
pd.read_csv('source.txt',header=0, delim_whitespace=True)
headers = ['ID','vocab','sumCI','sumnextCI','new_diff']
df.columns = headers
df.to_csv('newsource.txt')
Vous pouvez essayer de faire ceci:
pd.read_csv('source.txt',header=0, delim_whitespace=True)
Si vous avez des espaces blancs dans les données, vous obtiendrez une erreur, donc delim_whitespace
est inclus pour supprimer ceux-ci au cas où ils seraient dans les données.