首页 > 解决方案 > 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 变量中使用什么,这样我就可以一次将这个函数传递给整个数组。

标签: pythonpandas

解决方案


推荐阅读