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

标签 python pandas numpy datetime

使用 Pandas,我可以通过 mySeries.dt.date 将日期时间系列转换为日期系列。

对于 numpy 列来说会是什么样子?示例:

import pandas as pd
df = 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.date
print("df.columns:", df.columns)
df.columns: Index(['a', 'b', 'datetime', 'date'], dtype='object')

<!- ->

# convert to numpy array
dfVal = df.values
# display datetime
print("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 convert
dfVal[:, 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.date
AttributeError: 'numpy.ndarray' object has no attribute 'dt'

最佳答案

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]')

关于python - NumPy 相当于 pandas 日期时间访问器操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53959453/

相关文章:

python - 为什么seaborn会在面网格中一遍又一遍地渲染相同的图形?

python - 在 Dockerfile 中安装 pandas

python pandas 切片列

python-3.x - 如何从python中的numpy下的linspace函数中排除起点?

python - 并发 future 等待任务的子集

python - 在python中重命名字典键/值

python - pickle 字符串的更有效方法

python - 如何从 numpy.datetime64 获取 unix 时间戳

python - 在 python 中编写一个简单的 MongoDB 模块

python - 如何在 Python 3 中设置 sys.stdout 编码?