将pandas中的日期转换

2024-10-01 13:27:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道这个问题已经被问了100次了,但我还是不明白,而且给出的解决方案也帮不了我什么忙。在

我试图用Pandas/Python将时间转换成可比较的格式。我使用了一个数据库条目作为数据,目前我在使用时间时遇到了这样的问题:

52   2017-08-04 12:26:56.348698
53   2017-08-04 12:28:22.961560
54   2017-08-04 12:34:20.299041

目标是使用它作为year1year2来生成一个如下图:

^{pr2}$

当我尝试这样做时,我得到ValueError: invalid literal for int() with base 10: '2017-08-04 12:34:20.299041'。在

因此,目前我考虑使用正则表达式来操作时间字段,但这不是一种方法,至少我无法想象。我尝试了SO/GitHub的所有建议,但没有真正奏效。我也不知道“最佳”时间结构应该是什么样子。是20170804123420299041还是类似的2017-08-04-12-34-20-299041。我希望有人能把这件事告诉我。在


Tags: 数据数据库目标pandas格式时间条目解决方案
2条回答

你看过pd.to_datetime了吗?熊猫和Seaborn应该能够很好地处理日期,而且你不必把它们转换成整数。在

以下是您的数据:

from matplotlib import pyplot as plt
from datetime import datetime
import pandas as pd
df = pd.DataFrame([("2017-08-04 12:26",56.348698),("2017-08-04 12:28",22.961560),("2017-08-04 12:34",20.299041)])
df.columns = ["date", "val"]

首先,我们转换为datetime,然后减少year1,然后转换为days。在

^{pr2}$

绘制数据,并且只显示year1year2之间的天数

plt.scatter(df["days"],df["val"])
plt.xlim((0,(year2-year1)*365))
plt.show()

相关问题 更多 >