我正在使用日期时间end_date
和数字trip_length
的数据集。
data = {'end_date': '2015-02-19 15:46:00', 'trip_length': 300}`)
data['end_date'] = pd.to_datetime(data['end_date'])`
data['end_just_date'] = data.end_date.dt.date
import seaborn as sns
sns.lmplot('end_just_date', 'trip_length', data=data)
我想在给定年份的所有日子中呈现trip_length
的散点图。我创建了一个只有日期的列,但是当我将其绘制为我的x变量时,我收到以下错误:
TypeError: float() argument must be a string or a number
有没有办法根据月份将日期转换为天数?
答案 0 :(得分:0)
Edit2:M. Waskom提出了一个更好的方法:
g = sns.FacetGrid(less_than_two_days)
g = (g.map(plt.scatter,'trip_length','end_date'))
plt.show()
编辑:您可以在x轴上绘制年,月和日,如下所示:
less_than_two_days['end_yyyymmdd'] = (
less_than_two_days['end_date'].dt.year.astype(str) +
less_than_two_days['end_date'].dt.month.astype(str).str.zfill(2) +
less_than_two_days['end_date'].dt.day.astype(str).str.zfill(2))
less_than_two_days['end_yyyymmdd'] = less_than_two_days['end_yyyymmdd'].astype(int)
然后用日期标记x轴,执行:
ax = sns.lmplot('end_yyyymmdd', 'trip_length', data=df)
ax.set_xticklabels(df['end_date'])
顺便说一句,这就像是一种解决方法,因为它是:https://github.com/mwaskom/seaborn/issues/257
旧回答:看起来您的DataFrame名为less_than_two_days
。如果是这样,你可以这样做,以获得一年中的一天:
less_than_two_days['end_day_of_year'] = less_than_two_days['end_date'].dt.dayofyear
然后做你的情节:
sns.lmplot('end_day_of_year', 'trip_length', data=less_than_two_days)