python - Python Pandas 和 Seaborn 日期格式问题:strftime 对不同 seaborn 图表的工作方式不同
问题描述
所以基本上我在数据框中有日期,如下所示:
import pandas as pd
from matplotlib import pyplot as plt
import seaborn as sns
data = {'date': ['January 2020', 'February 2020', 'March 2020', 'April 2020', 'May 2020'],
'revenue': [29000,31000,32000,25000,34000]}
df = pd.DataFrame(data)
df["date"] = pd.to_datetime(df["date"])
plt.figure(figsize=(14,5))
sns.set()
ax = sns.barplot(data=df, x="date", y="revenue", ci=None)
ax.set_xticklabels(df['date'].dt.strftime('%Y-%m'))
plt.xticks(rotation=45)
plt.show()
这按预期工作。日期以 %Y-%m 格式显示,以便您看到所有日期都不同。如果您删除我使用“strftime”更改格式的行,那么日期的格式将是“2020:01-01T00:00:00:00000000”
现在所有这些在上面的示例中都可以正常工作,但是当我做与从 SQL 查询中提取相同的事情时,所有月份的结果都完全相同(2020-07),即使当我不这样做时它们是唯一的t改变'strftime'
我原以为这与我的 SQL 查询有关,但同一笔记本中的另一个 SQL 查询可以正常工作,甚至无需更改“strftime”。我为此所做的只是 pd.to_datetime() 它工作并在图表上自动将其格式化为“2020-07、2020-08、2020-09”等。
这是怎么回事?
解决方案
推荐阅读
- python - 如何在 MATLAB 中做这个 Python 插值?
- c# - 从 JSON 反序列化为对象列表
- php - 如何使用 post 方法传递参数并从 url 获取响应并使用 gson 和 volley 在 android 中显示?
- intellij-idea - 将 Intellij 配置为 Eclipse
- c - 指向指针地址的指针
- laravel - Laravel 验证请求(不是参数)
- java - 存储 count-min-sketch 的前 k 个结果
- javascript - Angular 6 App zone.js drainMicroTaskQueue 无限循环
- maven-dependency - 依赖项与 Java 7 的兼容性
- javascript - Boostrap 3 中 Datatables 插件的显示格式自定义