我目前正在通过使用python导入工作在google工作表上。当我导入工作表时它是对象格式,后来我转换为float,但是我尝试更改Date列的格式然后它给了我一个错误。 / p>
以下是我必须处理的数据框
df.head()
Out[21]:
Date Avg_Energy Avg_Voltage
1 24-06-2018 12-50-02 2452.93
2 24-06-2018 12-50-03 2452.98 228.03
3 24-06-2018 12-50-04 2453.04 228.7
4 24-06-2018 12-50-05 2453.1 228.4
5 24-06-2018 12-50-06 2453.16 228.74
我已应用以下代码将其更改为日期时间格式
df['DateTime'] = pd.to_datetime(df['Date'])
我向我提供以下错误
df2['DateTime'] = pd.to_datetime(df2['Date'])
Traceback (most recent call last):
File "<ipython-input-22-0636e9d0e511>", line 1, in <module>
df2['DateTime'] = pd.to_datetime(df2['Date'])
File "C:\Users\Hussnain\Anaconda3\lib\site-packages\pandas\core\tools\datetimes.py", line 451, in to_datetime
values = _convert_listlike(arg._values, True, format)
File "C:\Users\Hussnain\Anaconda3\lib\site-packages\pandas\core\tools\datetimes.py", line 380, in _convert_listlike
raise e
File "C:\Users\Hussnain\Anaconda3\lib\site-packages\pandas\core\tools\datetimes.py", line 368, in _convert_listlike
require_iso8601=require_iso8601
File "pandas\_libs\tslib.pyx", line 492, in pandas._libs.tslib.array_to_datetime
File "pandas\_libs\tslib.pyx", line 739, in pandas._libs.tslib.array_to_datetime
File "pandas\_libs\tslib.pyx", line 733, in pandas._libs.tslib.array_to_datetime
File "pandas\_libs\tslibs\parsing.pyx", line 99, in pandas._libs.tslibs.parsing.parse_datetime_string
File "C:\Users\Hussnain\Anaconda3\lib\site-packages\dateutil\parser\_parser.py", line 1356, in parse
return DEFAULTPARSER.parse(timestr, **kwargs)
File "C:\Users\Hussnain\Anaconda3\lib\site-packages\dateutil\parser\_parser.py", line 648, in parse
raise ValueError("Unknown string format:", timestr)
ValueError: ('Unknown string format:', '24-06-2018 12-50-100')
答案 0 :(得分:1)
您使用的是非正统的日期时间格式。使用format
参数。
pd.to_datetime(df.Date, format='%d-%m-%Y %H-%M-%S')
0 2018-06-24 12:50:02
1 2018-06-24 12:50:03
2 2018-06-24 12:50:04
3 2018-06-24 12:50:05
4 2018-06-24 12:50:06
Name: Date, dtype: datetime64[ns]
有关更多信息,请参见http://strftime.org/。
答案 1 :(得分:0)
最后,我只测试了:
pd.to_datetime(df.Date)
它奏效了。似乎您没有第一个Avg_Voltage
值。
Date Energy Voltage
1 24-06-2018 12-50-02 2452.93 322323.00
2 24-06-2018 12-50-03 2452.98 228.03
3 24-06-2018 12-50-04 2453.04 228.70
4 24-06-2018 12-50-05 2453.10 228.40
5 24-06-2018 12-50-06 2453.16 228.74
1 2018-06-24 12:00:00-02:00
2 2018-06-24 12:00:00-03:00
3 2018-06-24 12:00:00-04:00
4 2018-06-24 12:00:00-05:00
5 2018-06-24 12:00:00-06:00
Name: Date, dtype: object
您可以使用:
pd.to_datetime(df.Date).dt.strftime('%Y-%m-%d %H:%M:%S')
以获得更好的格式。