我有一个pandas
DataFrame
df
其中包含Timesatamp
列。
我希望创建一个行迭代器(通过iter..
方法或通过to_dict
) from df
哪里的Timesatamp
值是 pythondatetime
.
我试过这样做
for col in df.select_dtypes(['datetime']):
df[col] = df[col].dt.to_pydatetime()
然而,这些列似乎仍然是Timesatamp
当使用上面提到的迭代器方法时。
有没有'batch'y除了在迭代时手动转换每个值之外,还有什么方法可以实现这一点?
example
df = pd.DataFrame({'d': pd.date_range('2018-01-01', freq='12h', periods=2), 'a':[1,2]})
for col in df.select_dtypes(['datetime']):
df[col] = df[col].dt.to_pydatetime()
print(df.to_dict('records'))
输出:
[{'d': Timestamp('2018-01-01 00:00:00'), 'a': 1}, {'d': Timestamp('2018-01-01 12:00:00'), 'a': 2}]
所需的输出:
[{'d': datetime.datetime(2018, 1, 1, 0, 0), 'a': 1}, {'d': datetime.datetime(2018, 1, 1, 12, 0), 'a': 2}]