当前有一个带有日期时间索引的数据框。希望创建一个向量化的函数,将每行的索引作为键。
例如,我有:
>>> 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变量中使用的内容,因此可以立即将此函数传递给整个数组。