为了账号安全,请及时绑定邮箱和手机立即绑定

NumPy 相当于 pandas 日期时间访问器操作

NumPy 相当于 pandas 日期时间访问器操作

缥缈止盈 2021-09-28 13:20:14
使用 Pandas,我可以通过mySeries.dt.date.一个 numpy 列看起来如何?例子:import pandas as pddf = pd.DataFrame({"a": ["31.12.1999 23:59:12", "31.12.1999 23:59:13", "31.12.1999 23:59:14"], "b": [4, 5, 6]})df["datetime"] = pd.to_datetime(df.a)df["date"]=df.datetime.dt.dateprint("df.columns:", df.columns)df.columns: Index(['a', 'b', 'datetime', 'date'], dtype='object')<!--># convert to numpy arraydfVal = df.values# display datetimeprint("dfVal[:,2]:", dfVal[:, 2])dfVal[:,2]: [Timestamp('1999-12-31 23:59:12') Timestamp('1999-12-31 23:59:13') Timestamp('1999-12-31 23:59:14')]<!_-># try to convertdfVal[:, 2].dt.date<!-->Traceback (most recent call last):  File "/home/user/anaconda3/lib/python3.6/site-packages/IPython/core/interactiveshell.py", line 2963, in run_code    exec(code_obj, self.user_global_ns, self.user_ns)  File "<ipython-input-12-5cead683e881>", line 1, in <module>    dfVal[:, 2].dt.dateAttributeError: 'numpy.ndarray' object has no attribute 'dt'
查看完整描述

1 回答

?
跃然一笑

TA贡献1826条经验 获得超6个赞

df

                     a  b            datetime

0  31.12.1999 23:59:12  4 1999-12-31 23:59:12

1  31.12.1999 23:59:13  5 1999-12-31 23:59:13

2  31.12.1999 23:59:14  6 1999-12-31 23:59:14


arr = df['datetime'].values

dt.date


arr.astype('datetime64[D]')

# array(['1999-12-31', '1999-12-31', '1999-12-31'], dtype='datetime64[D]')

dt.month


arr.astype('datetime64[M]') - arr.astype('datetime64[Y]') + 1

# array([12, 12, 12], dtype='timedelta64[M]')

dt.year


arr.astype('datetime64[Y]')

#  array(['1999', '1999', '1999'], dtype='datetime64[Y]')

dt.date


arr.astype('datetime64[D]') - arr.astype('datetime64[M]') + 1

# array([31, 31, 31], dtype='timedelta64[D]')


查看完整回答
反对 回复 2021-09-28
  • 1 回答
  • 0 关注
  • 129 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信