gpt4 book ai didi

python - 将日期转换为 pandas

转载 作者:行者123 更新时间:2023-12-01 02:42:34 25 4
gpt4 key购买 nike

我知道这个问题已经被问了大约 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来制作如下图表:

def sns_compare(year1,year2):
f, (ax1) = plt.subplots(1, figsize=LARGE_FIGSIZE)
for yr in range(int(year1),int(year2)):
sns.distplot(tag2[str(yr)].dropna(), hist=False, kde=True, rug=False, bins=25)
sns_compare(year1,year2)

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

所以目前我正在考虑使用正则表达式来操纵时间字段,但这不是可行的方法,或者至少我无法想象。我尝试了 SO/GitHub 的各种建议,但没有任何效果。我也不知道“最佳”时间结构应该是什么样子。是20170804123420299041还是类似2017-08-04-12-34-20-299041。我希望有人能向我澄清这一点。

最佳答案

这是您的数据:

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"]

首先,我们转换为日期时间,然后减少 year1,接下来我们转换为天。

df['date'] = pd.to_datetime(df["date"])
df["days"]=(df['date'] -datetime(year1,1,1)).dt.total_seconds()/86400.0

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

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

关于python - 将日期转换为 pandas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45521376/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com