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 变量中使用什么,这样我就可以一次将这个函数传递给整个数组。
解决方案
推荐阅读
- c# - 你可以使用 microsoft bot framework 4.9 来构建一个带有 core 3.1 的 bot 吗?
- python - Python / Selenium / BeautifulSoup:如何获取需要登录的页面的html
- java - 如何使 java.util.ArrayList 线程安全
- java - 如何在 Java 中接受任何超过两位数的数字?
- firebase - 无法从 Firebase 返回查询的数据(Flutter/Dart)
- python-3.x - 尝试使用 PILLOW 和 EOG 图像查看器显示图像时出错
- google-bigquery - 在 BigQuery Storage API 的 python 客户端库中,bigquery_storage_v1beta1* 模块包含什么?
- cefsharp - 使用 CefSharp 浏览器使用 Google Meet
- postgresql - 将带有 json 数组的 CSV 复制到 Postgresql
- node.js - 如何使用 express-session 在 node.js 上设置 presistent cookie?