我已经创建了以下数据框:date_merge作为一个例子,因为我实际上想显示一天中的温度值。
df_time = filtered_df_date["longtime"].dt.time
df_date = filtered_df_date["longtime"].dt.date
过滤的DF日期:
| 指标|长期的|
| - ------|- ------|
| 小行星52754|2020年01月01日00时00分|
| 小行星52755|2020年1月1日00时32分|
| 小行星52756|2020年1月1日00时33分|
| ...|...|
| 小行星53261|2020年1月1日23时59分|
date_merge = pd.merge(df_time, df_date, left_index=True, right_index=True)
date_merge = pd.merge(date_merge, pickd_column_df, left_index=True, right_index=True)
| 指标|长时间|长期日期|价值|
| - ------|- ------|- ------|- ------|
| 小行星52755|00时32分|2020年1月1日|二十三点三|
| 小行星52757|00时34分|2020年1月1日|二十三点三|
| 小行星52759|00时37分|2020年1月1日|钠氮|
| 小行星52760|00时38分|2020年1月1日|钠氮|
| 小行星52761|00时39分|2020年1月1日|钠氮|
| - -|...|...|...|
| 小行星53261|23时59分|2020年1月1日|二十三点九|
现在我在x轴上绘制longon_date作为示例:
ax = date_merge.plot(x ="longtime_date" , y="value" , kind="scatter" ,figsize=[15, 5], linewidth=0.1, alpha=0.6, color="#003399")
plt.show()
它工作没有错误。如果我现在使用longion_time代替longion_date作为x轴,我会得到以下错误消息
ax = date_merge.plot(x ="longtime_time" , y="value" , kind="scatter" ,figsize=[15, 5], linewidth=0.1, alpha=0.6, color="#003399")
plt.show()
TypeError:float()参数必须是字符串或数字,而不是"datetime. time"
- 更多信息:**
print(date_merge["longtime_time"].dtype)
输出:
客体
print(date_merge["longtime_date"].dtype)
输出:
客体
print(date_merge["temperature_ers_lite_1_wermser_0_elsys_0"].dtype)
输出:
浮动64
2条答案
按热度按时间9udxz4iz1#
好的,我认为问题是您需要将该列转换为
str
。所以在绘图之前的某个时候:
或者可以:
siv3szwd2#
我会把它描述为类型问题和时间问题的组合:
pandas.DatetimeIndex.date
--〉返回一个datetime.date
对象,而pandas.DatetimeIndex.time
--〉返回datetime.time
对象第一个对象本质上与
datetime.datetime
相同,而后者只是时间,没有日期信息。可以说,这并不重要,因为它们都表示数字。然而,在实践中,datetime.time
值被含糊地处理并被拒绝。您可以使用字符串强制,如其他答案所示,或者另一种方法是使用表达式减去日期部分,只留下时间信息(但不修改对象类型):