首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >基于日期时间的熊猫数据选择

基于日期时间的熊猫数据选择
EN

Stack Overflow用户
提问于 2020-03-27 06:43:49
回答 1查看 1.6K关注 0票数 2

我试图创建某种“功能选择”,让用户能够灵活地创建配置,以选择熊猫数据中的数据。然而,我遇到了一些令我困惑的问题。

以下是一个简化的示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> import pandas as pd
>>> df = pd.DataFrame({'date': pd.date_range(start='2020-01-01', periods=4), 'val': [1, 2, 3, 4]})
>>> df
        date  val
0 2020-01-01    1
1 2020-01-02    2
2 2020-01-03    3
3 2020-01-04    4

问题1:当我以不同的方式在列上应用函数时,为什么得到不同的结果?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> import datetime
>>> bydatetime = lambda x : x == datetime.date(2020, 1, 1)
>>> bydatetime(df['date'])
0    False
1    False
2    False
3    False
Name: date, dtype: bool
>>> df['date'].apply(bydatetime) # why does this one work?
0     True
1    False
2    False
3    False
Name: date, dtype: bool

然而,如果我使用numpy的datetime64或熊猫的Timestamp类型来创建lambda函数,它就会工作。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> import numpy as np
>>> bynpdatetime = lambda x : x == np.datetime64('2020-01-01')
>>> bynpdatetime(df['date'])
0     True
1    False
2    False
3    False
Name: date, dtype: bool
>>> df['date'].apply(bynpdatetime)
0     True
1    False
2    False
3    False
Name: date, dtype: bool
>>> bypdtimestamp = lambda x : x == pd.Timestamp('2020-01-01')
>>> bypdtimestamp(df['date'])
0     True
1    False
2    False
3    False
Name: date, dtype: bool
>>> df['date'].apply(bypdtimestamp)
0     True
1    False
2    False
3    False
Name: date, dtype: bool

因此,我返回到使用以下简单的选择,并且使用datetime.date无效。如果datetime.date不能工作,为什么df['date'].apply(bydatetime)会工作呢?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> df[df['date'] == datetime.date(2020, 1, 1)]
Empty DataFrame
Columns: [date, val]
Index: []
>>> df[df['date'] == np.datetime64('2020-01-01')]
        date  val
0 2020-01-01    1
>>> df[df['date'] == pd.Timestamp('2020-01-01')]
        date  val
0 2020-01-01    1

最后但并非最不重要的是,为什么选择一个单元格时,datedatetime64在DataFrame但Timestamp中的类型?他们之间到底有什么区别?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 4 entries, 0 to 3
Data columns (total 2 columns):
 #   Column  Non-Null Count  Dtype         
---  ------  --------------  -----         
 0   date    4 non-null      datetime64[ns]
 1   val     4 non-null      int64         
dtypes: datetime64[ns](1), int64(1)
memory usage: 192.0 bytes
>>>
>>> df['date'][0]
Timestamp('2020-01-01 00:00:00')

我相信这里有一些基本的东西我不明白。非常感谢您所做的一切建设性的工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-27 06:51:21

幸运的是,我有一个较早版本的pandas (0.25),您在执行bynpdatetime(df['date'])时会收到警告,这正好解释了为什么会看到这种行为。关于如何处理这件事,有一些反复的讨论。,因此看到这个行为将是高度特定于版本的:

FutureWarning:将一系列日期时间与'datetime.date‘进行比较。目前,“datetime.date”被胁迫到日期时间。在未来,熊猫不会强迫,并且‘值将不等于'datetime.date'.为了保持当前的行为,将'datetime.date’转换成一个带有‘pd.Time戳’的日期时间。

pandas是建立在np.datetime64np.timedelta64 d类型之上的。您不应该使用datetime模块,因为它们已经做出了与标准库不一致的某些选择。所有的意外行为都是因为这一点。

回答另一个与此无关的问题。datetime64类似于数组类型,或概念。该数组(在本例中为pd.Series)将由标量timedelta64对象组成。这在文档中得到了解释。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60888277

复制
相关文章
何为真何为假
还记得第一个提出日心说的人是谁么? 没错, 哥白尼. 但是在那个年代, 所有人都认为太阳围绕着地球转的年代. 哥白尼的发现打破了大家的常识, 甚至于有过了很多年, 日心说才逐渐被大众所接受. 即使到了
烟草的香味
2020/06/09
9710
Excel公式练习:真真假假,假假真真——有多少是真?
有时候,简单的问题往往能够有多种实现方法,也能让人更好地了解不同方法的用处和实质。
fanjy
2022/11/16
7530
Excel公式练习:真真假假,假假真真——有多少是真?
以数据之道:发现数据真与假?
从7.23动车事故开始,死亡35人便成为了一部分网民经久不衰的话题。他们认为,当事故死亡人数超过35人时,省市官员就必须为此负责,因此官员将有动机将死亡人数实际超过35人的事故压低到死亡35人以内。
herain
2022/04/27
4350
以数据之道:发现数据真与假?
COVID-22是假,破坏MBR是真
在 COVID-19 还未结束之际,伪装成 COVID-22 安装程序的新兴恶意软件已经出现。
FB客服
2021/12/06
8430
COVID-22是假,破坏MBR是真
PowerBI 矩阵条件格式的高亮显示
在 PowerBI 中,矩阵的确是最强大而复杂的结构,为了突出显示各种信息,需要对内容来高亮显示。
BI佐罗
2020/11/02
5.5K0
PowerBI 矩阵条件格式的高亮显示
是爱情,还是欺诈?假靳东背后的真骗局
“小东,他们说你是骗子,我不相信,我会继续等你的。” 前几天,一则“六旬女子沉迷靳东短视频”的新闻在网络上流传,视频中的黄女士,自从在短视频平台上接触到“靳东”之后,每天茶饭不思,甚至离家出走。 无论旁人怎么劝阻,黄女士都坚信“靳东”弟弟不会欺骗她:“靳东向全中国宣布喜欢我,给我买了一套50万的房子!” 演员靳东我们都很熟悉,但黄女士口中的“靳东”弟弟是谁,到底有什么魅力,让黄女士在连一面都没见到的情况下,就对他不离不弃? “芳心纵火犯“ 视频平台上所谓的“靳东”弟弟,其实就是将靳东本人照片与各
腾讯举报中心
2020/10/26
5320
javascript: if语句中的判断条件,什么时候为假?
综上,if语句中的变量为  false,0,NaN,空字符串,null,undefined时  判断结果为假;
碧海长天
2021/10/21
1.3K0
你的老板,是真独裁,还是假民主?(说的就是你)
新尝试,视频号聊技术,欢迎双击爱心 新尝试,60s分享一个正能量。 “架构师之路”视频号,学技术,学管理,闯职场 如果大家喜欢,我尽量坚持下去。 推荐阅读: 《架构师之路,21年干货精选》
架构师之路
2022/07/12
2710
你的老板,是真独裁,还是假民主?(说的就是你)
直插电阻类型_假插芯和真插芯的区别
插件电阻也称为电阻器(Resistor)在日常生活中一般直接称为电阻。是一个限流元件,将电阻接在电路中后,电阻器的阻值是固定的一般是两个引脚,它可限制通过它所连支路的电流大小。
全栈程序员站长
2022/09/24
5640
JavaScript 中的真值与假值
会进行真值,假值判断的地方 if,else if switch while,for &&,||:逻辑与逻辑或 !!: 转化成布尔值 假值 undefined null 0,+0,-0 NaN '' "" false 验证代码 var falseyValue = undefined || null || 0 || +0 || -0 || NaN || '' || "" || false; if (falseyValue) { } else if (falseyValue) { } else
前端GoGoGo
2018/08/24
1K0
Excel公式练习45: 从矩阵数组中返回满足条件的所有组合数
导语:继续研究来自于excelxor.com的案例。这个案例很复杂,但解决方案却很精彩,值得好好研究。建议结合本文参阅原文,会有更大的收获。
fanjy
2020/03/12
3.3K0
在游戏中,爆出神装是真随机还是假随机?
周末,陪女朋友去电影院看了《复仇者联盟4:终局之战》,作为一个漫威粉三个小时看的是意犹未尽。出来之后,准备和女朋友聊一聊漫威这十年。
Java3y
2019/05/15
1K0
在游戏中,爆出神装是真随机还是假随机?
矩阵中的路径
请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如 a b c e s f c s a d e e 矩阵中包含一条字符串"bcced"的路径,但是矩阵中不包含"abcb"路径,因为字符串的第一个字符b占据了矩阵中的第一行第二个格子之后,路径不能再次进入该格子。
名字是乱打的
2021/12/22
1.1K0
[剑指offer] 矩阵中的路径
请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则之后不能再次进入这个格子。 例如 a b c e s f c s a d e e 这样的3 X 4 矩阵中包含一条字符串”bcced”的路径,但是矩阵中不包含”abcb”路径,因为字符串的第一个字符b占据了矩阵中的第一行第二个格子之后,路径不能再次进入该格子。
尾尾部落
2018/09/04
1.4K0
python中矩阵的转置_[转]Python中的矩阵转置[通俗易懂]
arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]
全栈程序员站长
2022/09/03
3.5K0
罗永浩微博辟谣:锤子T3真机渲染图是假的
上半年国内外各手机厂商旗舰新机接连不断发布,而作为国内知名度和话题度都较高的锤子科技近来似乎也要发布新机锤子T3了。 最近网上频频曝光有关锤子T3的各类消息,再加上近来锤子T2手机的一系列降价活动,让
镁客网
2018/05/28
3370
机器学习中的矩阵向量求导(五) 矩阵对矩阵的求导
    在矩阵向量求导前4篇文章中,我们主要讨论了标量对向量矩阵的求导,以及向量对向量的求导。本文我们就讨论下之前没有涉及到的矩阵对矩阵的求导,还有矩阵对向量,向量对矩阵求导这几种形式的求导方法。
刘建平Pinard
2019/05/31
3.1K0
矩阵组合matlab,matlab中矩阵的所有组合[通俗易懂]
X = perms(1:N); % # Permuations of column indices
全栈程序员站长
2022/08/01
1.3K0
计算矩阵中全1子矩阵的个数
最近被我大哥安利了一道算法题, 这道题说难, 还不至于我做不出来, 说简单吧, 我还想不到最优解, 等把最优解告诉我之后, 我还正好能理解. 我甚至曾经怯怯的认为, 这题就是我哥专门给我找的, 嘿嘿, 心中说不出的小欢喜.
烟草的香味
2020/07/15
2.6K0
计算矩阵中全1子矩阵的个数
python中的矩阵运算
转自:https://www.cnblogs.com/chamie/p/4870078.html
py3study
2020/01/06
9300
python中的矩阵运算

相似问题

假或真!=真或假!=真/假

23

基于R中的真/假矩阵的子集?

21

为什么假&(假)?假:真返回真。

59

如何(假==假==真)为真

613

(真!=假!=真)与(假!=真!=假)有什么区别?

30
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文