按行切片Pandas DataFrame [英] Slice Pandas DataFrame by Row
问题描述
我正在处理通过pandas软件包从h5文件作为hdf = pandas.HDFStore('Survey.h5')
加载的调查数据.在此DataFrame
中,所有行都是单个调查的结果,而列则是单个调查中所有问题的答案.
I am working with survey data loaded from an h5-file as hdf = pandas.HDFStore('Survey.h5')
through the pandas package. Within this DataFrame
, all rows are the results of a single survey, whereas the columns are the answers for all questions within a single survey.
我的目标是将数据集缩小为较小的DataFrame
,仅包括对某个问题具有特定答案的行,即该列中的所有值均相同.在这种情况下,我能够确定所有行的索引值,但是我找不到如何删除该行或仅使用这些行创建新的df.
I am aiming to reduce this dataset to a smaller DataFrame
including only the rows with a certain depicted answer on a certain question, i.e. with all the same value in this column. I am able to determine the index values of all rows with this condition, but I can't find how to delete this rows or make a new df with these rows only.
推荐答案
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
这篇关于按行切片Pandas DataFrame的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!