熊猫访问指数

时间:2018-12-19 17:34:54

标签: python pandas

当前有一个带有日期时间索引的数据框。希望创建一个向量化的函数,将每行的索引作为键。

例如,我有:

>>> sampleset.head()
                               index_h index_l  120l12
time                                                  
2010-05-06T21:00:00.000000000Z       7       2     NaN
2010-05-10T21:00:00.000000000Z     NaN      63     NaN
2010-05-12T21:00:00.000000000Z     NaN      64     1.0
2010-05-14T21:00:00.000000000Z       0     NaN     NaN
2010-05-16T21:00:00.000000000Z       1     NaN     NaN

我正在尝试将索引值作为函数中的键进行访问以创建新列。

def local_key(dataframe, column, key, ):
    a = sampleset.iloc[sampleset.index.get_loc(key)-5:sampleset.index.get_loc(key)+5][column]
    print(a)
    b = pd.to_numeric(a)
    c = {b.idxmax() : b.max()}
    return c

最后通过

sampleset['local'] = local_key(sampleset, 'index_l', sampleset['time'])

如果我向其传递了实际的密钥,则此功能将正常工作,例如:

>>> local_key(sampleset, 'index_l', '2010-06-11T21:00:00.000000000Z')
2010-06-03T21:00:00.000000000Z      0
2010-06-04T21:00:00.000000000Z    NaN
2010-06-07T21:00:00.000000000Z      3
2010-06-08T21:00:00.000000000Z    NaN
2010-06-10T21:00:00.000000000Z      4
2010-06-11T21:00:00.000000000Z    NaN
2010-06-12T21:00:00.000000000Z      5
2010-06-14T21:00:00.000000000Z    NaN
2010-06-16T21:00:00.000000000Z      0
2010-06-17T21:00:00.000000000Z    NaN
Name: index_l, dtype: object
{'2010-06-12T21:00:00.000000000Z': 5.0}

我只是在寻找需要在key变量中使用的内容,因此可以立即将此函数传递给整个数组。

0 个答案:

没有答案