[英]setting values in a pandas dataframe using loc - multiple selection criteria allowing setting value in a different column
[英]Using .loc with multiple selection criteria
我想运行.loc
来捕获需要多个条件的数据子集。 就像是:
df.loc[(
df["date"] > datetime.datetime.strptime('Jan 1 2000', '%b %d %Y').date() &
df["date"] < datetime.datetime.strptime('Jan 1 2009', '%b %d %Y').date() )]
当然,这种语法是不正确的。 正确的语法是什么?
在复合布尔条件时,由于运算符的优先级,您需要添加括号,因此以下各项应适用:
df.loc[( df["date"] > datetime.datetime.strptime('Jan 1 2000', '%b %d %Y').date()) & (df["date"] < datetime.datetime.strptime('Jan 1 2009', '%b %d %Y').date() )]
我还认为,仅传递日期字符串进行比较会更容易:
In [6]:
df = pd.DataFrame({'a':pd.date_range(start=dt.datetime(2015,1,1), end=dt.datetime(2015,2,4))})
df[(df['a'] > '2015/01/14') & (df['a'] < '2015/02/01')]
Out[6]:
a
14 2015-01-15
15 2015-01-16
16 2015-01-17
17 2015-01-18
18 2015-01-19
19 2015-01-20
20 2015-01-21
21 2015-01-22
22 2015-01-23
23 2015-01-24
24 2015-01-25
25 2015-01-26
26 2015-01-27
27 2015-01-28
28 2015-01-29
29 2015-01-30
30 2015-01-31
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.