我正在尝试将csv文件解析为dataFrame,因为我需要对时间戳进行一些分析。 csv文件结构良好,可以使用pd.read_csv读取它,而不会出现问题:
import pandas as pd
import datetime as dt
df = pd.read_csv('trip_data.csv', low_memory=False, parse_dates=['datetime'], infer_datetime_format=True)
但是,即使将parse_dates和infer_datetime_format作为参数,我仍然会得到一个dataFrame,它不会解析文件上的时间戳:
df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 8771828 entries, 0 to 8771827
Data columns (total 3 columns):
UserID int64
datetime object
amount float64
dtypes: float64(1), int64(1), object(1)
memory usage: 1.1+ GB
所以当我尝试获取最小日期时,例如:
print(df['datetime'].min())
我得到一个错误的答案,因为我可以看到我的df上的最小时间戳是2018-01-01 00:08:26并且我得到的最小时间戳是2018-01-27 04:06:37 ...我缺少任何内容,或者有任何其他方法可以将其强制转换为datetime64吗?
这是我的csv文件的峰值:
UserID,datetime,amount
1,2018-01-01 00:21:05,5.8
1,2018-01-01 00:44:55,15.3
1,2018-01-01 00:08:26,8.3
1,2018-01-01 00:20:22,34.8
1,2018-01-01 00:09:18,16.55
1,2018-01-01 00:29:29,5.8
1,2018-01-01 00:38:08,12.35
1,2018-01-01 00:49:29,6.3
答案 0 :(得分:2)
您可以手动将列转换为日期时间
df['datetime'] = pd.to_datetime(df['datetime'])
然后
print(df['datetime'].min())
答案 1 :(得分:0)
在不窥视数据源的情况下,很难就如何解决此问题提供建议,但是寻找一个好地方可能是有关从CSV here解析日期时间的文档。
第一步可能是尝试:(parse_dates = True,infer_datetime_format = True)