【发布时间】:2016-09-14 20:15:26
【问题描述】:
我在名为in_file的数据框中有以下数据:
Client Value_01 Value_02 Date
ABC 100 500 2016-09-01T
ABC 14 90 2016-09-02T
DEF 95 1000 2016-09-01T
DEF 200 600 2016-09-02T
GHI 75 19 2016-09-01T
GHI 300 700 2016-09-02T
JKL 50 02 2016-09-01T
JKL 400 800 2016-09-02T
我使用以下内容对数据框进行子集化(我们将其称为“子集 1”):
df_01 = in_file.loc[(in_file.Date == '2016-09-01T') & (in_file.Client <> 'ABC') & (in_file.Client <> 'DEF')].sort_values('Value_01', ascending=False)
我回来了:
Client Value_01 Value_02 Date
GHI 75 19 2016-09-01T
JKL 50 02 2016-09-01T
然后,我尝试使用以下内容对数据框进行子集化(我们将其称为“子集 2”):
df_02 = in_file.loc[(in_file.Date == '2016-09-01T') & (in_file.Client == 'ABC') & (in_file.Client == 'DEF')].sort_values('Value_01', ascending=False)
使用“子集 2”,我得到一个空数据框。但是,我期待看到以下内容:
Client Value_01 Value_02 Date
ABC 100 500 2016-09-01T
DEF 95 1000 2016-09-01T
有谁知道为什么“子集 2”代码没有返回我期望的数据框?
提前致谢。
【问题讨论】:
-
你想要
(in_file.Client == 'ABC') & (in_file.Client == 'DEF')吗?两者同时为真? -
试试这个:
in_file.loc[(in_file.Date == '2016-09-01T') & (in_file.Client.isin(['ABC', 'DEF'])].sort_values('Value_01', ascending=False) -
是否有与
isin对应的允许我排除某些数据的方法?