我在“索引”中有超过8000个项目,但for循环只为第一个项目完成工作。
from datetime import datetime
from pandas import Series
from pandas import DataFrame
series = Series.from_csv('something.csv', header=1)
index = DataFrame(series.index)
for item in index:
dt = datetime.strptime(item, "%Y-%m-%d %H:%M:%S.%f")
dt = dt.time().isoformat()
print(dt)
因此索引列中的项目如下所示:1998-02-14 19:30:54.052000
for循环执行此19:30:54.052000
,但仅适用于第一行。知道为什么吗?
答案 0 :(得分:3)
这不是你如何循环系列的项目。你做了什么迭代列,而在一系列中,只有一个。这就是为什么它只执行一次。如果无法通过矢量化操作实现目标,请使用Series.iteritems
。
v1 = np.array([1,4,2,np.nan,3])
v2 = np.array([np.nan,np.nan,2,4,1])
np.where(np.isnan(v1),0,v1).dot(np.where(np.isnan(v2),0,v2))
但在这种情况下,您可以使用Series.apply
代替for-loop。
for idx, item in index.iteritems():
dt = ...