python-3.x - 熊猫数据框排序日期
问题描述
我在http://sprunge.us/Pv338j有一个 csv 文件。我用它创建了一个数据框。其中有一个日期列。如果我尝试对此日期列进行排序,则该列未排序。这是我的代码:
import pandas as pd
df = pd.read_csv(outputcsv)
df['Date'] = pd.to_datetime(df.Date)
df.Date
0 2020-11-11
1 2020-12-11
2 2020-11-13
3 2020-11-14
4 2020-11-15
274 2021-12-08
275 2021-08-13
276 2021-08-14
277 2021-08-15
278 2021-08-16
Name: Date, Length: 279, dtype: datetime64[ns]
df.sort_values(by='Date', inplace=True)
df.Date
20 2020-01-12
21 2020-02-12
22 2020-03-12
23 2020-04-12
24 2020-05-12
152 2021-12-04
182 2021-12-05
213 2021-12-06
243 2021-12-07
274 2021-12-08
Name: Date, Length: 279, dtype: datetime64[ns]
解决方案
你可以试试这个:
df['Date2'] = [(d - datetime.datetime(1970,1,1)).total_seconds() for d in df['Date']]
df['year'] = [datetime.datetime.fromtimestamp(d).year for d in df['Date2']]
df['month'] = [datetime.datetime.fromtimestamp(d).month for d in df['Date2']]
df['day'] = [datetime.datetime.fromtimestamp(d).day for d in df['Date2']]
df.sort_values(['year', 'month', 'day'], ascending=[True, True, True])
df['Date']
推荐阅读
- c - 如何使用共享头文件和代码文件构建 C(嵌入式)项目
- sql - 重置前根据增加的列值选择最后一行?
- python - 在python中模拟线程模块
- linked-list - 从未排序的链表中删除重复项 ::为什么此代码显示分段错误
- python - 从 Pandas 时间戳列中提取年/月并将其存储在两个新列中
- c - 验证 XML 文档无法加载使用原始 XSD 文档中的相对路径引用的架构
- c# - 使用 Response.Redirect 时如何删除段 URL
- php - 在 HTTP/2 更新后解析 HTML 文件中的 PHP 不起作用
- angular - 在 Linux 中无法从 Github Repo 中找到模块
- android - 将图像导入数据库