如图1,想统计相同月份下的每个月的分箱个数,我写的代码是:data[data['日期']=='2020-06-01']["分箱"].value_counts()
为什么出来的各分箱统计结果都是0 ,如图2
问题1010.xlsx
好的 谢谢~
用df['日期']==datetime.strptime("2020-06-01","%Y-%m-%d")这个代码可以实现单个日期的类型转化,然后我整列转化用的这个代码data['日期'] = pd.to_datetime(data['日期']),好像可以实现整列转化了
嗯嗯,pandas内置了许多时间处理的方法、函数,多看看找到规律了就好了。
为什么我这个转化出来以后全是false呢
1、我看到你的序号好像不是连续的了,所以不知道你的data做了什么样的变化,还是不是原来的数据集,这个你需要确认一下。
2、另外你可以对返回值做个求和,如果都是false则最终的和是0 ,如果包含True,则最终的和就是True的个数。
那么我想把这列字符串转化为日期类型,怎么转化比较方便呢,可以整列转化
有没有能将我这个整列的字符串转化为日期格式的办法?
首先,你日期这列就是日期格式,这一点你可以使用 df.info()来查看每一列的数据类型。
字符串类型的数据跟日期类型的数据在实际使用过程中存在哪些差异?
字符串类型的数据不适合进行一些计算比如两个日期相差多少天、当天是周几等,这类情况需要由原来的字符串转换为日期类型。如果是根据日期做聚合运算的时候是字符串也无妨的。
另外pandas 可以实现字符串与日期的互换,这类资料也是非常的多,CDA答疑社区也有相关帖子进行介绍这里就不再展开了
那么这个问题怎么解决呢,就是我数据里面是日期,但是我想实现这个功能
时间的比较当然需要用时间类型的数据进行比较了。python中可以使用datetime模块来处理时间相关问题。
代码如下:
from datetime import datetime
df['日期']==datetime.strptime("2020-06-01","%Y-%m-%d")
为什么布尔值全是false呢,这个函数要怎么查看帮助文档
返回false 说明你这个'2020-06-01'写法并不是真实数据的样子,这是字符串,而你数据里面应该是日期,所以不相等。
data['日期']=='2020-06-01'这句有问题吧,你可以单独执行这句看看返回的布尔值是啥样。你应该用聚合函数来计算吧?目前会查看帮助文档了吗?