我正在尝试构建时间序列数据的数据框架。我必须从API检索数据,并且数据框中的每个(i,j)条目(其中“i”是行,“j”是列)必须迭代并单独填充。
这是我想要做的事情类型的想法(请注意我正在使用的API没有我正在尝试分析的历史数据):
import pandas as pd
import numpy as np
import time
def retrievedata(string):
take string
do some stuff with api
return float
label_list = ['label1','label1','label1', etc...]
discrete_points = 720
df = pd.DataFrame(index=np.arange(0, discrete_points), columns=(i for i in label_list))
所以此时我已预先分配了一个数据帧。接下来是问题。
现在,我想迭代它并根据我编写的用于提取数据的函数为数据框中的每个(i,j)条目赋值。请注意,我编写的函数必须特定于某个列(因为它将列标签作为输入)。最重要的是,每行都有不同的值b / c它是时间序列数据。
编辑:哎呀,我发现了一种让它发挥作用的重要方法:
for row in range(discrete_points):
for label in label_list:
df.at[row, label] = retrievedata(label)
这显然是一种非pythonic,非numpy,非熊猫的做事方式。因此,我希望找到一种更好,更高效/更少计算能力的方法。
我假设它必须是以下组合:iter.rows(); iter.tuples(); df.loc(); df.at()
我很难过。
有什么想法吗?