python - 如何按月分隔此数据框列?
问题描述
第三列显示了我的数据完成的时间。理想情况下,我希望第二行只显示日期,删除后半部分元素,但我不确定如何更改元素。我能够将(第二)列字符串更改为没有磅符号的浮点列,以便找到成本总和。但是,此列没有特定的关键字,我只是为所有要删除的元素选择。
我的问题的第二部分是是否可以轻松创建另一个包含 2021-05-xx 或 2021-06-xx 的数据框。我知道有一种方法可以让另一个数据框选择某些行,例如前 15 或后 7 行。但我不知道是否有办法让数据框找到我提到的内容。我认为它遵循 Series.str.contains(),但似乎当我将“2021-05”放入 () 时,它显示了 False 的整个数据框。
解决方案
可以通过更改列的格式来仅提取日期并忽略 datetime 列中的时间。
df['date'] = pd.to_datetime(df['date']).dt.date
对于关于创建新数据框的问题的第二部分,该数据框被过滤为仅包含 2021-05-xx 和 2021-06-xx 之间的行,我们可以使用 pandas 过滤。
df_filtered = df[(df['date'] >= pd.to_datetime('2021-05-01')) & (df['date'] <= pd.to_datetime('2021-06-30'))]
在这里,我们利用了两件事:1) Pandas 使用数字运算符可以轻松比较不同日期的年表。2) 我们知道任何包含 2021-05-xx 或 2021-06-xx 的日期必须在 5 月的第一天/之后和 6 月的最后一天/之前。
还有一些 GUI 可以很容易地更改列的格式和过滤数据,而无需自己编写代码。我是其中一种工具Mito的创建者。要在 Mito 中过滤日期,您只需使用我们的日历输入字段输入日期,Mito 就会为您生成等效的 pandas 代码!
推荐阅读
- android - React-native 发布版本导致模拟器出现“系统 UI 没有响应”错误
- c++ - unique_ptr 如何使用自定义删除器功能?
- php - 为什么我的 wordpress 页面内容不可见?
- javascript - VScode 智能感知不起作用..有什么建议吗?
- javascript - 访问对象数组中的数组元素 - JavaScript
- c++ - c++ chrono 是否有一个正常的舍入函数,从 0 开始舍入?
- excel - 多个excel OR条件
- javascript - Javascript:数组迭代适用于第二个表达式,但不适用于第一个
- javascript - 比较没有对象引用Angular 10的两个对象
- r - 如何垂直定位直方图