【发布时间】:2019-01-19 05:25:50
【问题描述】:
我正在尝试从数据框中获取时间序列。我的数据框包含两个所需的列 - 时间戳和速度。到目前为止,这是我的代码:
第 1 步:我将所需速度列中的所有空格替换为 0
bus1354['Speed'].replace(' ',0,inplace=True)
第 2 步:然后我检查在此之后的 Speed 列中是否有任何 NaN 值
assert not bus1354['Speed'].isnull().any()
第 3 步:然后我检查数据帧中 Timestamp 和 Speed 列的前几个条目
bus1354[['Timestamp','Speed']].head()
这是我得到的结果(到目前为止还不错):
第 4 步:然后我截断时间戳以便仅显示 hh:mm:ss 并删除毫秒。我也转换为日期时间格式。
bus1354['Timestamp'] = pd.to_datetime(bus1354['Timestamp'].apply(lambda x : x[:7]))
第 5 步:我检查截断的结果
bus1354['Timestamp'].head()
看起来是这样的:
第6步:然后我将速度从非空对象转换为float64
bus1354['Speed'] = bus1354['Speed'].apply(float)
第 7 步:创建时间范围和时间序列
bstimeRng = bus1354['Timestamp']
bs1354Ser = pd.Series(bus1354['Speed'], index=bstimeRng)
第 8 步:然而,一旦我输出了我的时间序列,我的 Speed 列就会得到一堆 NaN。
bs1354Ser
我仍在学习熊猫的来龙去脉,如果这听起来像是一个基本问题,请多多包涵。为什么即使我将 Speed 列更改为 float64 后,时间序列仍将我想要的 Speed 值显示为“NaN”?
【问题讨论】: