高效的 Dataframe 列(对象)到 DateTime 的转换
Efficient Dataframe column (Object) to DateTime conversion
我正在尝试创建一个新列,其中包含日期输入列的数据作为日期时间。 我也很乐意接受更改日期列的数据类型,但我不确定该怎么做。
我目前正在使用 DateTime = dd.to_datetime。我正在从 CSV 导入并让 dask 决定数据类型。
我对此还很陌生,所以我尝试了一些 Whosebug 的答案,但我只是摸索着,得到的错误比答案还多。
我输入的日期字符串是,例如:
2019-20-09 04:00
这是我目前拥有的,
import dask.dataframe as dd
import dask.multiprocessing
import dask.threaded
import pandas as pd
# Dataframes implement the Pandas API
import dask.dataframe as dd
ddf = dd.read_csv(r'C:\Users\i5-Desktop\Downloads\State_Weathergrids.csv')
print(ddf.describe(include='all'))
ddf['DateTime'] = dd.to_datetime(ddf['Date'], format='%y-%d-%m %H:%M')
我收到的错误如下。 我假设最后一行是最相关的 部分,但我终究无法弄清楚为什么给定的日期格式与我指定的格式不匹配。
TypeError Traceback (most recent call last)
~\Anaconda3\lib\site-packages\pandas\core\tools\datetimes.py in _convert_listlike_datetimes(arg, box, format, name, tz, unit, errors, infer_datetime_format, dayfirst, yearfirst, exact)
290 try:
--> 291 values, tz = conversion.datetime_to_datetime64(arg)
292 return DatetimeIndex._simple_new(values, name=name, tz=tz)
pandas/_libs/tslibs/conversion.pyx in pandas._libs.tslibs.conversion.datetime_to_datetime64()
TypeError: Unrecognized value type: <class 'str'>
During handling of the above exception, another exception occurred:
....
ValueError: time data '2019-20-09 04:00' does not match format '%y-%d-%m %H:%M' (match)
使用描述的数据框当前属性:
Dask DataFrame Structure:
Location Date Temperature RH
npartitions=1
float64 object float64 float64
... ... ... ...
Dask Name: describe, 971 tasks
示例数据
+-----------+------------------+-------------+--------+
| Location | Date | Temperature | RH |
+-----------+------------------+-------------+--------+
| 1075 | 2019-20-09 04:00 | 6.8 | 99.3 |
| 1075 | 2019-20-09 05:00 | 6.4 | 100.0 |
| 1075 | 2019-20-09 06:00 | 6.7 | 99.3 |
| 1075 | 2019-20-09 07:00 | 8.6 | 95.4 |
| 1075 | 2019-20-09 08:00 | 12.2 | 76.0 |
+-----------+------------------+-------------+--------+
试试这个,
['DateTime'] = dd.to_datetime(ddf['Date'], format='%Y-%d-%m %H:%M', errors = 'ignore')
错误忽略将 return Nan to_datetime 失败..
更多详情请访问https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.to_datetime.html
我正在尝试创建一个新列,其中包含日期输入列的数据作为日期时间。 我也很乐意接受更改日期列的数据类型,但我不确定该怎么做。
我目前正在使用 DateTime = dd.to_datetime。我正在从 CSV 导入并让 dask 决定数据类型。
我对此还很陌生,所以我尝试了一些 Whosebug 的答案,但我只是摸索着,得到的错误比答案还多。
我输入的日期字符串是,例如:
2019-20-09 04:00
这是我目前拥有的,
import dask.dataframe as dd
import dask.multiprocessing
import dask.threaded
import pandas as pd
# Dataframes implement the Pandas API
import dask.dataframe as dd
ddf = dd.read_csv(r'C:\Users\i5-Desktop\Downloads\State_Weathergrids.csv')
print(ddf.describe(include='all'))
ddf['DateTime'] = dd.to_datetime(ddf['Date'], format='%y-%d-%m %H:%M')
我收到的错误如下。 我假设最后一行是最相关的 部分,但我终究无法弄清楚为什么给定的日期格式与我指定的格式不匹配。
TypeError Traceback (most recent call last)
~\Anaconda3\lib\site-packages\pandas\core\tools\datetimes.py in _convert_listlike_datetimes(arg, box, format, name, tz, unit, errors, infer_datetime_format, dayfirst, yearfirst, exact)
290 try:
--> 291 values, tz = conversion.datetime_to_datetime64(arg)
292 return DatetimeIndex._simple_new(values, name=name, tz=tz)
pandas/_libs/tslibs/conversion.pyx in pandas._libs.tslibs.conversion.datetime_to_datetime64()
TypeError: Unrecognized value type: <class 'str'>
During handling of the above exception, another exception occurred:
....
ValueError: time data '2019-20-09 04:00' does not match format '%y-%d-%m %H:%M' (match)
使用描述的数据框当前属性:
Dask DataFrame Structure:
Location Date Temperature RH
npartitions=1
float64 object float64 float64
... ... ... ...
Dask Name: describe, 971 tasks
示例数据
+-----------+------------------+-------------+--------+
| Location | Date | Temperature | RH |
+-----------+------------------+-------------+--------+
| 1075 | 2019-20-09 04:00 | 6.8 | 99.3 |
| 1075 | 2019-20-09 05:00 | 6.4 | 100.0 |
| 1075 | 2019-20-09 06:00 | 6.7 | 99.3 |
| 1075 | 2019-20-09 07:00 | 8.6 | 95.4 |
| 1075 | 2019-20-09 08:00 | 12.2 | 76.0 |
+-----------+------------------+-------------+--------+
试试这个,
['DateTime'] = dd.to_datetime(ddf['Date'], format='%Y-%d-%m %H:%M', errors = 'ignore')
错误忽略将 return Nan to_datetime 失败..
更多详情请访问https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.to_datetime.html