我有一个数据框看起来像这样:

date         score
2017-06-04    90
2017-06-03    80
2017-06-02    70

当我尝试这个:
sns.regplot(x=date, y=score, data=df)

我收到一个错误:
TypeError: reduction operation 'mean' not allowed for this dtype

date的dtype是datetime64[ns],而score列的int64

如何隐藏date列,以便regplot工作?

最佳答案

Seaborn不支持regplot中的日期时间,但这是一个丑陋的hack:

df = df.sort_values('date')
df['date_f'] = pd.factorize(df['date'])[0] + 1
mapping = dict(zip(df['date_f'], df['date'].dt.date))

ax = sns.regplot('date_f', 'score', data=df)
labels = pd.Series(ax.get_xticks()).map(mapping).fillna('')
ax.set_xticklabels(labels)

产生

python - 使用datetime64作为x轴的Seaborn regplot-LMLPHP

这是时间序列回归中使用的主要方法。如果您有每日数据,则将第1天编码为1,并随着日期的增加而增加数字。假设您有一个规则间隔的时间序列。

关于python - 使用datetime64作为x轴的Seaborn regplot,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44354614/

10-12 18:13