熊猫:选择具有特定月份和日期的所有日期

use*_*329 12 python datetime pandas

我有一个充满日期的数据框,我想选择月份== 12和日期== 25的所有日期,并添加用xmas1 替换列中的零.

无论如何要做到这一点?我的代码的第二行错误了.

df = DataFrame({'date':[datetime(2013,1,1).date() + timedelta(days=i) for i in range(0,365*2)], 'xmas':np.zeros(365*2)})

df[df['date'].month==12 and df['date'].day==25] = 1
Run Code Online (Sandbox Code Playgroud)

Sha*_* RC 21

Series具有日期时间的熊猫现在表现不同.请参阅.dt访问器.

这就是现在应该怎么做:

df.loc[(df['date'].dt.day==25) & (cust_df['date'].dt.month==12), 'xmas'] = 1
Run Code Online (Sandbox Code Playgroud)


EdC*_*ica 13

基本上你尝试的东西不能用,因为你需要使用&比较数组,另外你需要使用括号因运算符优先级.除此之外,您应该使用它loc来执行索引:

df.loc[(df['date'].month==12) & (df['date'].day==25), 'xmas'] = 1
Run Code Online (Sandbox Code Playgroud)