Python - Des Pandas.isin' sur une liste
J'utilise Python 2.7 sur Mac OSX Lion et les Pandas 0.11.0 avec le IPython shell.
J'ai une brève question, en utilisant les données de la méthode de sélection .isin
.
Le problème est que je voudrais utiliser .isin
sur une liste d'éléments, donc:
data = df[df[header[0]].isin(list)]
J'obtiens l'erreur suivante lorsque je fais ceci: KeyError: u'no item named '
- Je générer la liste initiale en appelant un précédemment développé fonction. J'ai essayé d'utiliser eval
sur la liste, qui semble résoudre un problème qui survient lors de l'utilisation de raw_input
et une itération sur les éléments à l'intérieur - un peu en essayant de travailler avec certaines des questions que j'ai eu lors de la transition vers IPython
et Python 2.7
(à l'origine utilisé Python 3.3
).
J'ai aussi essayé de parcourir la liste, d'abord:
data = df[df[header[0]].isin(list[0])]
Mais qui renvoie également: KeyError: u'no item named '
Mise à JOUR:
Voici l'en-tête:
Unnamed: 0 9752 non-null values
zipcode 9752 non-null values
xcoord 9752 non-null values
ycoord 9752 non-null values
age_age5064 9752 non-null values
age_age6574 9752 non-null values
age_age75plus 9752 non-null values
sex_female 9752 non-null values
sex_male 9752 non-null values
stage_early 9752 non-null values
stage_late 9752 non-null values
death_death 9752 non-null values
death_not_death 9752 non-null values
access 9752 non-null values
dtypes: float64(2), int64(12)
Aussi, j'ai une fonction que j'utilise pour obtenir l'en-tête, ce qui rend les choses plus facile pour moi, la sortie ressemble à ceci:
['',
'zipcode',
'xcoord',
'ycoord',
'age_age5064',
'age_age6574',
'age_age75plus',
'sex_female',
'sex_male',
'stage_early',
'stage_late',
'death_death',
'death_not_death',
'access']
Qui, en fait, maintenant que j'y pense, peut-être ce qui est à l'origine du problème - bien que eval
ne serait toujours pas de correctif.
Mise à JOUR 2:
Donc, d'abord, comme vous pouvez le voir ci-dessus .isin
, j'ai été en utilisant header[0]
, ce qui n'était pas droit. J'ai essayé de nouveau à l'aide de header[1]
, qui est approprié. J'obtiens l'erreur suivante:
TypeError: 'int' object is not iterable
J'ai aussi essayé la liste de nouveau et a obtenu ce message d'erreur:
TypeError: int() argument must be a string or a number, not 'list'
Qui, je crois, parle de façon plus définitive à la question....
header
un DataFrame?, Quelle est la différence entre votre df
et header
?Dans le
df[df[header[0]].isin(list)]
, en-tête n'est pas un DataFrame
. C'est une liste de noms de colonnes, qui composent l'en-tête.Comment avez-vous la tête? Par
df.columns
?J'ai eu l'en-tête par l'appel d'une fonction, j'ai écrit appelé
getHeader
, qui a littéralement retourne le nom des colonnes, sous la forme d'une liste, à partir d'un fichier CSV.Bien que, je n'ai également mis le résultat de l'appel
DataFrame.columns
, qui est juste en dessous où il est dit "mise à JOUR"...OriginalL'auteur DMML | 2013-05-29
Vous devez vous connecter pour publier un commentaire.
Essayez d'utiliser df.colonnes d'en-tête à la place:
OriginalL'auteur waitingkuo