如果我有一个Pandas数据框,并且是一个日期时间类型的列,则可以按以下方式获得年份:
df['year'] = df['date'].dt.year
如果数据框不够清晰,那是行不通的。如果我先计算,像这样:
df['year'] = df['date'].compute().dt.year
我得到ValueError: Not all divisions are known, can't align partitions. Please use
set_index or
set_partitionto set the index.
但是,如果我这样做:
df['date'].head().dt.year
它工作正常!
那么,如何在快速数据框中获得日期时间序列的年(或周)呢?
该.dt
日期时间命名空间是存在于DASK一系列对象。这是其使用的自包含内容:
In [1]: import pandas as pd
In [2]: df = pd.util.testing.makeTimeSeries().to_frame().reset_index().head(10)
In [3]: df # some pandas data to turn into a dask.dataframe
Out[3]:
index 0
0 2000-01-03 -0.034297
1 2000-01-04 -0.373816
2 2000-01-05 -0.844751
3 2000-01-06 0.924542
4 2000-01-07 0.507070
5 2000-01-10 0.216684
6 2000-01-11 1.191743
7 2000-01-12 -2.103547
8 2000-01-13 0.156629
9 2000-01-14 1.602243
In [4]: import dask.dataframe as dd
In [5]: ddf = dd.from_pandas(df, npartitions=3)
In [6]: ddf['year'] = ddf['index'].dt.year # use the .dt namespace
In [7]: ddf.head()
Out[7]:
index 0 year
0 2000-01-03 -0.034297 2000
1 2000-01-04 -0.373816 2000
2 2000-01-05 -0.844751 2000
3 2000-01-06 0.924542 2000
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句