【发布时间】:2019-11-22 09:10:10
【问题描述】:
我想做的事: 列“角度”每秒跟踪大约 20 个角度(可能会有所不同)。但是我的“时间”时间戳只有 1 秒的精度(因此总是大约 20 行具有相同的时间戳)(数据帧中的总行数超过 100 万)。 我的结果将是一个新的数据框,每行的时间戳都在变化。时间戳的角度应为该区间内约 20 个时间戳的中位数。
我的想法: 我遍历行并检查时间戳是否已更改。 如果是这样,我会选择所有时间戳,直到它发生变化,计算中位数,并将其附加到新的数据帧中。 尽管如此,我有很多大数据文件,我想知道是否有更快的方法来实现我的目标。
现在我的代码如下(见下文)。 它并不快,我认为必须有更好的方法来使用 pandas/numpy(或其他东西?)。
a = 0
for i in range(1,len(df1.index)):
if df1.iloc[[a],[1]].iloc[0][0]==df1.iloc[[i],[1]].iloc[0][0]:
continue
else:
if a == 0:
df_result = df1[a:i-1].median()
else:
df_result = df_result.append(df1[a:i-1].median(), ignore_index = True)
a = i
【问题讨论】:
标签: python pandas numpy bigdata