Pandas - 迭代填充数据帧的值

时间:2017-12-28 10:26:56

标签: python-3.x pandas time-series

我正在尝试构建时间序列数据的数据框架。我必须从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()

我很难过。

有什么想法吗?

0 个答案:

没有答案