我正在使用通過pandas軟件包從h5文件加載的調查數據作爲hdf = pandas.HDFStore('Survey.h5')
。在此DataFrame
中,所有行都是單個調查的結果,而列是單個調查中所有問題的答案。按行劃分Pandas DataFrame
我的目標,以這個數據集減少到一個較小的DataFrame
包括只在某個問題有一定描繪的答案,即在此列所有相同值的行。我能夠確定這個條件下所有行的索引值,但我找不到如何刪除這行或使用這些行只有一個新的DF。
我正在使用通過pandas軟件包從h5文件加載的調查數據作爲hdf = pandas.HDFStore('Survey.h5')
。在此DataFrame
中,所有行都是單個調查的結果,而列是單個調查中所有問題的答案。按行劃分Pandas DataFrame
我的目標,以這個數據集減少到一個較小的DataFrame
包括只在某個問題有一定描繪的答案,即在此列所有相同值的行。我能夠確定這個條件下所有行的索引值,但我找不到如何刪除這行或使用這些行只有一個新的DF。
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
如果您已經知道索引可以使用.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
是可以切片數據框,說(C = 5或c = 6)所示:---> DF [((df.A == 0)&(df.B == 2)&(df.C == 5 or 6)&(df.D == 0))] – yoshiserry 2014-12-05 03:53:51
df [((df.A = =(df.B == 2)&df.C.isin([5,6])&(df.D == 0))]或df [((df.A == 0)& df.B == 2)&((df.C == 5)|(df.C == 6))&(df.D == 0))] – 2014-12-05 07:52:15