这是熊猫的预期行为吗,我希望将唯一时间戳记作为输出,所以我欣赏它们是可以转换为时间戳记的整数,但不是时间戳记:
import pandas as pd
df = pd.DataFrame()
df['last_test_data'] = ['2016-12-16', '2016-12-16', '2016-12-18', '2016-12-18', '2016-12-31']
df['last_test_data'] = pd.to_datetime(df['last_test_data'], format="%Y-%m-%d")
df = df.sort_values('last_test_data')
print(df['last_test_data'])
0 2016-12-16
1 2016-12-16
2 2016-12-18
3 2016-12-18
4 2016-12-31
Name: last_test_data, dtype: datetime64[ns]
OS_dates = df['last_test_data'].unique().tolist()
print(OS_dates)
[1481846400000000000, 1482019200000000000, 1483142400000000000]
.unique()。tolist()似乎将时间戳更改为列表,这意味着我无法在其上使用时间戳方法,例如:
for date in dateList:
print(date.month)
可以使用以下命令将其转换为时间戳:
dateList = [pd.to_datetime(d) for d in dateList]
但这是一个额外的步骤。我正在使用python 3.7.7和pandas 1.0.5(请注意,由于我的工作流在许多其他系统上运行,因此我无法毫无麻烦地升级到最新版本)
使用时.tolist()
,数据项将转换为最兼容的兼容内置Python类型:https : //numpy.org/doc/stable/reference/generation/numpy.ndarray.tolist.html
另外,使用.unique()
,我可以看到列表中每个元素的数据类型都更改为numpy.datetime64,这不会响应.month
创建列表时,可以使用以下代码:
OS_dates = list(pd.to_datetime(df['last_test_data'].unique()))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句