Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >比较数据帧列值在日期时间和整数?

比较数据帧列值在日期时间和整数?
EN

Stack Overflow用户
提问于 2019-08-09 07:51:44
回答 3查看 266关注 0票数 3

我有一个带有日期的dataframe列(已经转换成日期时间格式)。现在,我需要将列中的年份与数字进行比较,例如:

代码语言:javascript
运行
AI代码解释
复制
Date 
01-02-2018
04-07-2016
09-09-2019

我想做一个比较:

代码语言:javascript
运行
AI代码解释
复制
if dfA['Date'].dt.year == current:
   ## do something

有两个问题:

代码给出了这个错误

代码语言:javascript
运行
AI代码解释
复制
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

该数字来自分配给名称current的用户输入(我使用以下代码将current转换为int ):

代码语言:javascript
运行
AI代码解释
复制
current = int(args.User_Input)

不知道为什么这会给我一个错误

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-08-09 07:59:40

我假设您希望您的if -子句计算为True,如果在dfA['Date']中的任何年份等于current?如果是这样的话,您可以这样做:

代码语言:javascript
运行
AI代码解释
复制
if dfA['Date'].dt.year.eq(current).sum():
   # do something
票数 0
EN

Stack Overflow用户

发布于 2019-08-09 08:10:09

代码语言:javascript
运行
AI代码解释
复制
# Creating the data you specified
times = ['01-02-2018',
        '04-07-2016',
        '09-09-2019']

#converting to a dataframe
dfA = pd.DataFrame(times)

#Renaming the dataframe to the correct name
dfA.rename(columns={0:'Date'},inplace=True)

#formatting
dfA['Date'] = pd.to_datetime(dfA['Date'], format='%m-%d-%Y')

#User input. Must be an int
currentYear = int(input('Enter Year:'))

#Need to specify the index number using .values[n] to specify which year you're testing against
if dfA['Date'].dt.year.values[0] == currentYear:
    print('Do Something')
票数 0
EN

Stack Overflow用户

发布于 2019-08-09 08:13:55

出现此错误是因为语句dfA['Date'].dt.year == current是布尔值的pandas.Series,而不是一个布尔值:

代码语言:javascript
运行
AI代码解释
复制
dfA['Date'].dt.year == 2018
# 0     True
# 1    False
# 2    False
# Name: Date, dtype: bool

python if语句不知道如何处理:是否应该运行if语句下的代码块,因为本系列中的任何值都是真的?还是不应该因为不是所有的值都是真而运行呢?还是应该运行它,因为Series本身不是一个假值,比如None或零?意图是模棱两可的,因此出现错误。

如果要对符合指定标准的所有列在DataFrame上执行某些操作,请考虑使用布尔索引。您制作的系列可以用于选择DataFrame的某些行,如下所示:

代码语言:javascript
运行
AI代码解释
复制
dfA['example'] = 100
is_matching_year = dfA['Date'].dt.year == 2018
dfA.loc[is_matching_year, 'example'] *= 2
print(dfA[['Date', 'example']])
#         Date  example
# 0 2018-01-02      200
# 1 2016-04-07      100
# 2 2019-09-09      100
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57433515

复制
相关文章
sas文本挖掘案例:如何使用SAS计算Word Mover的距离
Word Mover的距离(WMD)是用于衡量两个文档之间差异的距离度量,它在文本分析中的应用是由华盛顿大学的一个研究小组在2015年引入的。
拓端
2020/07/17
1.2K0
sas文本挖掘案例:如何使用SAS计算Word Mover的距离
浮点数在计算机中是如何表示的
相比int等整型,float等浮点类型的表示和存储较为复杂,但它又是一个无法回避的话题,那么就有必要对浮点一探究竟了。在计算机中,一般用IEEE浮点近似表示任意一个实数,那么它实际上又是如何表示的呢?
编程珠玑
2019/09/02
1.9K0
Netty 在 Dubbo 中是如何应用的?
众所周知,国内知名框架 Dubbo 底层使用的是 Netty 作为网络通信,那么内部到底是如何使用的呢?今天我们就来一探究竟。
IT大咖说
2020/02/26
2.2K0
Tomcat在SpringBoot中是如何启动的?
我们知道SpringBoot给我们带来了一个全新的开发体验,我们可以直接把web程序打成jar包,直接启动,这就得益于SpringBoot内置了容器,可以直接启动,本文将以Tomcat为例,来看看SpringBoot是如何启动Tomcat的,同时也将展开学习下Tomcat的源码,了解Tomcat的设计。
挨踢小子部落阁
2019/10/14
1.6K0
Tomcat在SpringBoot中是如何启动的?
Tomcat在SpringBoot中是如何启动的
我们知道SpringBoot给我们带来了一个全新的开发体验,我们可以直接把web程序达成jar包,直接启动,这就得益于SpringBoot内置了容器,可以直接启动,本文将以Tomcat为例,来看看SpringBoot是如何启动Tomcat的,同时也将展开学习下Tomcat的源码,了解Tomcat的设计。
macrozheng
2019/09/27
1.7K0
Tomcat在SpringBoot中是如何启动的?
我们知道SpringBoot给我们带来了一个全新的开发体验,我们可以直接把web程序打成jar包,直接启动,这就得益于SpringBoot内置了容器,可以直接启动,本文将以Tomcat为例,来看看SpringBoot是如何启动Tomcat的,同时也将展开学习下Tomcat的源码,了解Tomcat的设计。
Bug开发工程师
2019/10/11
1.4K0
Tomcat在SpringBoot中是如何启动的?
在 Python 中是如何管理内存的?
Python内存池:内存池的概念就是预先在内存中申请一定数量的,大小相等 的内存块留作备用,当有新的内存需求时,就先从内存池中分配内存给这个需求,不够了之后再申请新的内存。这样做最显著的优势就是能够减少内存碎片,提升效率。
宇宙之一粟
2020/10/26
1.9K0
Netty 在 Dubbo 中是如何应用的?
众所周知,国内知名框架 Dubbo 底层使用的是 Netty 作为网络通信,那么内部到底是如何使用的呢?今天我们就来一探究竟。
Java技术栈
2019/11/29
9760
SQL语句在MySQL中是如何执行的
开门见山,当我们输入一条 SQL 语句的时候,MySQL 内部究竟执行了什么?直接上架构图,我们才能对其有一个概念,而不要陷入细节之中。
码哥字节
2020/03/24
4.5K0
SQL语句在MySQL中是如何执行的
Java 类在 Tomcat 中是如何加载的?
https://www.cnblogs.com/xing901022/p/4574961.html
Java技术栈
2019/09/26
2.6K0
Java 类在 Tomcat 中是如何加载的?
梯度是如何计算的
引言 深度学习模型的训练本质上是一个优化问题,而常采用的优化算法是梯度下降法(SGD)。对于SGD算法,最重要的就是如何计算梯度。此时,估计跟多人会告诉你:采用BP(backpropagation)算
机器学习算法工程师
2018/03/06
2.6K0
梯度是如何计算的
浮点数在计算机系统中是如何表示和存储的
在计算机系统中,浮点数是以一种称为浮点数表示法的形式来表示和存储的。浮点数表示法使用科学计数法的形式,将一个实数表示为一个值乘以一个基数的幂的形式。表示一个浮点数需要三个要素:符号位、尾数和指数。
一凡sir
2023/08/10
5320
程序在计算机中如何运行的
累加寄存器(AC) :主要进行加法运算。 标志寄存器(PSW) :记录状态,做逻辑运算。 程序计数器(PC) :是用于存放下一条指令所在单元的地址的地方。 基质寄存器(BX) :储存当前数据内存开始的位置。 变址寄存器 :储存基质寄存器的相对位置。 通用寄存器(GPRs):支持有所的用法。 指令寄存器(IR) :CPU专用,储存指令。 堆栈寄存器(SP) :记录堆栈的起始位置。
心跳包
2020/08/31
1.6K0
程序在计算机中如何运行的
RPM索引在Artifactory中是如何工作
RPM是用于保存和管理RPM软件包的仓库。我们在RHEL和Centos系统上常用的Yum安装就是安装的RPM软件包,而Yum的源就是一个RPM软件包的仓库。JFrog Artifactory是成熟的RPM和YUM存储库管理器。JFrog的官方Wiki页面提供有关Artifactory RPM存储库的详细信息。
JFrog杰蛙科技
2020/07/03
2.1K0
RPM索引在Artifactory中是如何工作
在 golang 中是如何对 epoll 进行封装的?
在协程没有流行以前,传统的网络编程中,同步阻塞是性能低下的代名词,一次切换就得是 3 us 左右的 CPU 开销。各种基于 epoll 的异步非阻塞的模型虽然提高了性能,但是基于回调函数的编程方式却非常不符合人的的直线思维模式。开发出来的代码的也不那么容易被人理解。
开发内功修炼
2022/05/07
4.1K0
在 golang 中是如何对 epoll 进行封装的?
SAS宏程序中的查询
我们在写相对复杂的宏的时候,通常会在开始位置加一些判断,比如判断某个变量是否在、一个路径是否存在、一个路径下面某种文件是否存在。。。
专业余码农
2020/07/16
1.2K0
sas软件是做什么的?数据分析sas软件,sas软件下载安装教程
SAS是一款用于数据分析和统计建模的软件。它可以帮助用户对大量数据进行处理、分析、建模和可视化。下面我们来看看它的一些主要特点。
用户10436734
2023/03/31
1.9K0
sas软件是做什么的?数据分析sas软件,sas软件下载安装教程
什么是JWT及在JAVA中如何使用?
在不使用JWT的情况下,我们一般选择的是cookie和session来进行服务鉴权(判断是否登录,是否具有某种权限),但是这是针对于只有一个客户端的情况下,现在客户端从pc端增长到了app端,现在就是多端访问了。
叫我阿杰好了
2022/11/07
3.2K0
什么是JWT及在JAVA中如何使用?
高级语言中的语句在汇编中是如何实现的
我们都知道对于c语言来说,它是需要先转换成汇编语言,然后再生成机器语言的。那么在c语言中,各种条件语句,各种表达式的计算,在汇编中是何如实现的呢?今天我们就来讲解一下。
程序那些事儿
2023/03/07
6880
高级语言中的语句在汇编中是如何实现的
【方法】学习 SAS 的正确姿势是怎样的?
作者 CDA 数据分析师 SAS 作为世界知名大数据分析产品,只要是大机构, 不论是、制药、金融、保险、市场部门、NGO 还是政府部门,SAS 的覆盖率,都是完全不可被替代的。甚至部分IT公司在统计
CDA数据分析师
2018/02/26
2.2K0
【方法】学习 SAS 的正确姿势是怎样的?

相似问题

映射与复杂键的多个索引

22

从多个映射和键列表到映射中的键和相应值的列表

40

yml -多个键映射到相同的值

151

Groovy映射中相同键的多个值

118

具有多个键映射到相同值的字典

568
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档