在python中删除闰年数据

2024-09-30 12:21:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧'mydf',格式如下

---------------------------
index month day year
---------------------------

“mydf”尺寸原始尺寸为1600

想消除闰年数据吗

所以我写了下面的命令

^{pr2}$

在这里,leapdf的大小返回为83

如果我试试下面的其他方法

otherdf =  mydf.loc[(mydf['month'] != 2) & (mydf['day'] != 29) ]

这里我预计其他DF的尺寸是1517。但返回的大小不同哪一个小得多?我不知道我犯了什么错。请纠正我


Tags: 数据方法命令dfindex尺寸格式year
2条回答

你的逻辑在第二个例子中是有缺陷的。Month != 2 AND day !=29不包括1月29日、3月29日、6月29日等。。在

你想要(month != 2) || (month =2 & day != 29)

我认为第二个解决方案是可以的,但是如果需要所有列,可以省略loc

mydf = pd.DataFrame({'month':[2,3,7],'day':[29,24,20]})

#invert boolean mask by ~
leapdf =  mydf[~((mydf['month'] == 2) & (mydf['day'] == 29)) ]
print (leapdf)
   day  month
1   24      3
2   20      7

#get all rows if NOT month 2 or NOT day 29
leapdf =  mydf[((mydf['month'] != 2) | (mydf['day'] != 29)) ]
print (leapdf)
   day  month
1   24      3
2   20      7

如果只需要一列:

^{pr2}$

替代方案:

leapdf =  mydf.query("month!= 2 | day != 29")
print (leapdf)
   day  month
1   24      3
2   20      7

相关问题 更多 >

    热门问题