Gre*_*reg 1 python date pandas
我有两个问题,我相信它们都被发布到日期格式.
我有一个日期和价值观的简历:
2012-01-03 00:00:00 95812
2012-01-04 00:00:00 101265
...
2016-10-21 00:00:00 93594
Run Code Online (Sandbox Code Playgroud)
在我加载之后read_csv我试图用以下方法解析日期:
X.Dated = pd.to_datetime(X.Dated, format='%Y-%m-%d %H:%M:%S', errors='raise')
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
dateparse = lambda x: pd.datetime.strptime(x, '%Y-%m-%d %H:%M:%S')
X = pd.read_csv('sales.csv', parse_dates=['Dated'], date_parser=dateparse)
Run Code Online (Sandbox Code Playgroud)
和infer_datetime_format论点.
所有这些似乎都很好,因为当我打印出来时,日期看起来像:2012-01-03.
当我试图在图表上绘制数据时出现问题,这一行:
ax.scatter(X.Dated, X.Val, c='green', marker='.')
Run Code Online (Sandbox Code Playgroud)
给我一个错误:
TypeError: invalid type promotion
Run Code Online (Sandbox Code Playgroud)
此外,当我尝试使用LinearRegression()算法时,fit命令工作正常,但得分和预测给了我这个错误:
TypeError: Cannot cast array data from dtype('<M8[ns]') to dtype('float64') according to the rule 'safe'
Run Code Online (Sandbox Code Playgroud)
我尝试了很多东西来解决它,但没有运气.任何帮助,将不胜感激.
ax.scatter(目前)不接受Pandas系列,但它可以接受Pandas时间戳列表(例如X['Dated'].tolist())或dtype的NumPy数组datetime64[ns](例如X['Dated'].values):
import pandas as pd
import matplotlib.pyplot as plt
X = pd.DataFrame({'Dated': [pd.Timestamp('2012-01-03 00:00:00'),
pd.Timestamp('2012-01-04 00:00:00'),
pd.Timestamp('2016-10-21 00:00:00')],
'Val': [95812, 101265, 93594]})
fig, ax = plt.subplots()
# ax.scatter(X['Dated'].tolist(), X['Val'], c='green', marker='.', s=200)
ax.scatter(X['Dated'].values, X['Val'], c='green', marker='.', s=200)
plt.show()
Run Code Online (Sandbox Code Playgroud)
x = self.convert_xunits(x)
y = self.convert_yunits(y)
Run Code Online (Sandbox Code Playgroud)
处理类似日期的输入.convert_xunits将NumPy datetime64数组转换为Matplotlib datenums,但它将Pandas时间序列转换为NumPy datetime64数组.
因此,当Pandas时间序列作为输入传递时ax.scatter,代码在到达此行时最终失败:
offsets = np.dstack((x, y))
Run Code Online (Sandbox Code Playgroud)
np.dstack试图将其输入的dtypes推广到一个共同的dtype.如果x有dtype datetime64[ns]并且y有dtype float64,那么
TypeError: invalid type promotion
Run Code Online (Sandbox Code Playgroud)
因为没有与两者兼容的本机NumPy dtype而被提出.
| 归档时间: |
|
| 查看次数: |
1143 次 |
| 最近记录: |