[英]Python pandas creating datetime for Week and Year and Month and Year
我有一个 pandas dataframe 有:分支,年,月,周,分配,销量
我试图在我的 plotly 仪表板和 Month.Year 和 Week.Year 上显示多年
就像在这张照片上,我在 Xaxis 上用 Year Month 显示两年:
在这张图片上,您可以看到今年是按照 2018-2019 年的时间线排序的。
我的问题是我试图创建基于日期时间和 week.year = (52.2018) 和 month.year = (12.2019) 但我无法创建像 week.year 或 month.year 这样的日期时间我从这段代码中得到:
dff['monthYear'] = pd.to_datetime(dff.Monat.astype(str) + '-' + dff.Jahr.astype(str), format='%m-%y')
这个错误:
文件“C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\tools\datetimes.py”,第 456 行,在 _convert_listlike_datetimes 值中,tz = conversion.datetime_to_datetime64(arg)
文件“pandas_libs\tslibs\conversion.pyx”,第 350 行,在 pandas._libs.tslibs.conversion.datetime_to_datetime64
TypeError:无法识别的值类型:<class 'str'>
在处理上述异常的过程中,又出现了一个异常:
回溯(最近一次通话最后):
文件“C:\Users\User\Desktop\DashProjekt\Jonen\ProjektBA\MultiYeartest.py”,第 24 行,在 dff['monthYear'] = pd.to_datetime(dff.Monat.astype(str) + '-' + dff.Jahr.astype(str), 格式='%m-%y')
文件“C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\tools\datetimes.py”,第 801 行,在 to_datetime cache_array = _maybe_cache(arg, format, cache, convert_listlike)
文件“C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\tools\datetimes.py”,第 178 行,在 _maybe_cache cache_dates = convert_listlike(unique_dates, format)
文件“C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\tools\datetimes.py”,第 460 行,在 _convert_listlike_datetimes raise e
文件“C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\tools\datetimes.py”,第 423 行,在 _convert_listlike_datetimes 结果中,timezones = array_strptime(
文件“pandas_libs\tslibs\strptime.pyx”,第 150 行,在 pandas._libs.tslibs.strptime.array_strptime
ValueError:未转换的数据仍然存在:20
先感谢您。
问候小学生
'-'
连接成字符串df.head()
###
Year Month Sales Volume
0 2020 1 773.956049
1 2020 2 438.878440
2 2020 3 858.597920
3 2020 4 697.368029
4 2020 5 94.177348
df['ym'] = df['Year'].astype(str) + '-' + df['Month'].astype(str)
df['ym'] = pd.to_datetime(df['ym'], format='%Y-%m')
fig = px.bar(df, x='ym', y='Sales Volume', color=df['Year'].astype(str))
fig.update_xaxes(tickformat='%Y_%m', tickangle=45)
fig.show()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.