python - with - Cortar Pandas DataFrame por fila
python pandas dataframe tutorial (2)
Si ya conoces el índice puedes usar .loc
:
In [12]: df = pd.DataFrame({"a": [1,2,3,4,5], "b": [4,5,6,7,8]})
In [13]: df
Out[13]:
a b
0 1 4
1 2 5
2 3 6
3 4 7
4 5 8
In [14]: df.loc[[0,2,4]]
Out[14]:
a b
0 1 4
2 3 6
4 5 8
In [15]: df.loc[1:3]
Out[15]:
a b
1 2 5
2 3 6
3 4 7
Estoy trabajando con datos de encuestas cargados desde un archivo h5 como hdf = pandas.HDFStore(''Survey.h5'')
través del paquete pandas. Dentro de este DataFrame
, todas las filas son los resultados de una sola encuesta, mientras que las columnas son las respuestas para todas las preguntas dentro de una sola encuesta.
DataFrame
objetivo es reducir este conjunto de datos a un DataFrame
más DataFrame
incluya solo las filas con una determinada respuesta representada en una pregunta determinada, es decir, con el mismo valor en esta columna. Soy capaz de determinar los valores de índice de todas las filas con esta condición, pero no puedo encontrar cómo eliminar estas filas o hacer un nuevo df con estas filas solamente.
In [36]: df
Out[36]:
A B C D
a 0 2 6 0
b 6 1 5 2
c 0 2 6 0
d 9 3 2 2
In [37]: rows
Out[37]: [''a'', ''c'']
In [38]: df.drop(rows)
Out[38]:
A B C D
b 6 1 5 2
d 9 3 2 2
In [39]: df[~((df.A == 0) & (df.B == 2) & (df.C == 6) & (df.D == 0))]
Out[39]:
A B C D
b 6 1 5 2
d 9 3 2 2
In [40]: df.ix[rows]
Out[40]:
A B C D
a 0 2 6 0
c 0 2 6 0
In [41]: df[((df.A == 0) & (df.B == 2) & (df.C == 6) & (df.D == 0))]
Out[41]:
A B C D
a 0 2 6 0
c 0 2 6 0