Étant donné que pandas est une opération de données basée sur numpy, cela est pratique car l'opération de numpy peut être utilisée telle quelle. Cependant, il est difficile de comprendre comment extraire des lignes et des colonnes tant que vous ne vous y êtes pas habitué. Je ne suis toujours pas familier avec cela, alors je vais l'écrire.
Il existe deux types de formats de données dans les pandas, DataFrame et Series. Les premières sont des données bidimensionnelles et les secondes sont des données unidimensionnelles. Fondamentalement, Series est rarement utilisé, nous allons donc nous concentrer sur DataFrame. Lorsqu'une colonne est spécifiée et extraite de DataFrame, elle devient de type Series.
# DataFrame
foo bar
a 0 1
b 2 3
c 4 5
# Series
a 0
b 2
c 4
Dans DataFrame, les numéros d'élément tels que numpy tels que la nième ligne et la mième colonne et les spécifications d'élément définies par l'utilisateur par index et colonne peuvent être spécifiés comme informations de position d'élément. Sauf indication contraire, un numéro est attribué, mais il n'est pas utilisé en pratique car il est identique à numpy dans un tel usage. Personnellement, je me demande aussi si l'index peut être un nombre.
Pour spécifier l'index et les colonnes, procédez comme suit.
df.columns = ['foo', 'bar']
df.index = ['a', 'b', 'c']
En outre, pour vérifier l'index et le nom des colonnes du DataFrame, procédez comme suit.
df.columns
df.index
df.info() # columns, index, memory usage
Dans DataFrame, la spécification de la façon de prendre __getitem__ '' est la spécification des colonnes. En outre, le numéro de colonne peut être récupéré, mais dans ce cas, il est nécessaire de spécifier ne serait-ce qu'un seul type de liste. Cependant, le numéro de ligne (index) de l'index ne peut pas être spécifié par cette méthode. Dans le cas de Series, index est spécifié par
`` getitem```. C'est naturel car il n'y a qu'une seule colonne.
df['foo'] or df[[0]] # designate single column
df[['foo', 'bar']] or df[[0, 1]] # designate multi columns
Comme mentionné ci-dessus, les informations de position des éléments sur le DataFrame incluent le numéro d'élément de la matrice et le nom défini par l'utilisateur. Il existe trois types, ix, iloc et loc, pour préciser lequel est utilisé pour l'extraction. iloc ne peut être spécifié que par numéro, loc ne peut être spécifié que par nom et ix peut être spécifié par les deux. En prenant l'exemple ci-dessus, si vous voulez prendre [0,0], vous pouvez écrire comme suit.
df.ix[[0], [0]]
df.ix[[0], ['foo']]
df.ix[['a'], ['foo']]
df.ix[['a'], [0]]
df.iloc[[0], [0]]
df.loc[['a'], ['foo']]
En passant, si vous souhaitez spécifier plusieurs index, vous pouvez procéder comme suit.
df.ix[:, [0]] #tout
df.ix[1:5, [0]] #Spécification de la gamme
df.ix[:] #Spécifier uniquement l'index
Comment extraire des lignes qui remplissent certaines conditions à partir de colonnes spécifiées. Toutes les colonnes de cette colonne sont générées.
print foo.loc[foo['bar'] == condition]
Indirectement, les éléments qui ne remplissent pas les conditions sont rendus NaN, puis les colonnes contenant NaN sont supprimées.
foo = foo[foo == 1] #Tous les éléments qui ne remplissent pas les conditions sont NaN.
foo = foo.dropna(axis=1)
Lors de l'itération pour chaque colonne de pd.DataFrame.
for index, rows in df.iterrows():
print index, rows # rows: pd.C'est un DataFrame.
#Lors de la création d'un seul navire
foo = pd.DataFrame(columns=['bar', 'baz'])
foo = pd.DataFrame({'bar': [0, 1, 2],
'baz': [3, 4, 5]}
index=['a', 'b', 'c'])
# foo
bar baz
a 0 3
b 1 4
c 2 5
L'ajout d'une nouvelle colonne est plus simple que l'ajout d'une ligne.
foo['qux'] = [6, 7, 8]
# foo
bar baz qux
a 0 3 6
b 1 4 7
c 2 5 8
foo = foo.append(pd.DataFrame({'bar': [6, 7], 'baz': [8, 9]}, index=['d', 'e']))
# foo
#Si vous souhaitez modifier l'index, vous devez le spécifier vous-même.
bar baz
a 0 3
b 1 4
c 2 5
d 6 7
e 8 9
foo.drop('e')
foo.drop('bar', axis=1) #Supprimez la colonne.
del foo['bar'] #Supprimez la colonne.(J'utilise python del.)
URL de référence http://stackoverflow.com/questions/17071871/select-rows-from-a-dataframe-based-on-values-in-a-column-in-pandas
referenced URL: http://sinhrks.hatenablog.com/entry/2014/11/12/233216
Recommended Posts