字符串转换的数据帧问题

2024-06-16 09:41:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我可以很容易地将一个字符串转换为pandas中的日期,如下所示。。。

df.date = pd.to_datetime(df.date, format="%m/%d/%Y")

在达斯克似乎没有捷径?

以下是pandas处理日期的示例:

^{pr2}$

这是一个可以工作但不能转换字符串的dask:

link = 'http://web.mta.info/developers/'

data = ['data/nyct/turnstile/turnstile_170128.txt',
                        'data/nyct/turnstile/turnstile_170121.txt',
                        'data/nyct/turnstile/turnstile_170114.txt',
                        'data/nyct/turnstile/turnstile_170107.txt' 
        ]

urls=[]
for i in data:
    urls.append(link+i)

import pandas as pd
import dask
import dask.dataframe as dd

ddfs = [dask.delayed(pd.read_csv)(url) for url in urls]

ddf = dd.from_delayed(ddfs)

ddf.columns=['ca', 'unit', 'scp', 'station', 'inename', 'division', 'date', 'time', 'desc', 'entries', 'exits']

如何将字符串转换为日期?


Tags: 字符串inimporttxtpandasdffordata
1条回答
网友
1楼 · 发布于 2024-06-16 09:41:06

编辑

这已经被添加到Dask数据帧中

dd.to_datetime(...)

上一个答案

使用parse_dates=关键字对pd.read_csv

执行此操作 ^{pr2}$

或者,您甚至可以将原始数据中的日期和时间列合并为一列

ddfs = [dask.delayed(pd.read_csv)(url, parse_dates={'DATETIME': ['DATE', 'TIME']}) for url in urls]

使用map_分区

如果您有一个带有object dtype列的dataframe,则可以始终使用map_partitions对每个分区应用pandas函数。您还应该为映射分区提供预期的输出类型。在

ddf['date'] = ddf['date'].map_partitions(pd.to_datetime, format='%m/%d/%Y',
                                         meta=('date', 'M8[ns]'))

这通常是一个很好的方法来覆盖Pandas没有的功能数据帧应用程序编程接口。在

相关问题 更多 >