在python中从数据帧检索信息
我有一个数据框:在python中从数据帧检索信息,python,pandas,Python,Pandas,我有一个数据框: Time(s) RARb relative signal Rescaled_CRABPII atRA RARa_tet RARg_tet 0 0 0 0.000000 100 0 0 1 7200 20 0.000000 100 0 0 2 14400
Time(s) RARb relative signal Rescaled_CRABPII atRA RARa_tet RARg_tet
0 0 0 0.000000 100 0 0
1 7200 20 0.000000 100 0 0
2 14400 50 11.764706 100 0 0
3 21600 90 58.823529 100 0 0
4 43200 100 100.000000 100 0 0
5 50400 100 105.882353 100 0 0
6 64800 100 117.647059 100 0 0
如何在
df['Time(s)]==43200时检索RARb相对信号的值 让df
成为您的数据帧,您可以:
a = df[df['Time(s)']==43200]['RARb relative signal']
首先,如果您保持df不变,那么应该使用.iat[]或.at[]代替标量获取和设置(请参见.iat[]和.at[]上的示例[此处])。因此.iat版本(两个版本中速度较快的版本)将是:
val = df.iat[df['Time(s)']==43200, 1]
列号为1,因为“RARb相对信号”是第二列。
如果您不确定列的位置,您也可以使用get_loc()获取该位置,或者只使用.at[]和基于标签的索引:
val = df.at[df['Time(s)']==43200, 'RARb relative signal']
如果您实际有一个多索引,则传递一个包含所有多索引级别的元组,而不是单个标签
真的,你为什么不把以秒为单位的时间作为索引呢?您仍然可以使用基于整数的索引来访问项目,这种方法似乎对您的数据更有意义。首先,重置索引:
df.index = df['Time(s)']
然后,您可能希望删除“时间”列,这由您决定。无论如何,使用新索引,您只需执行以下操作:
val = df.at[43200, 'RARb relative signal']
如果您经常执行这些类型的值检索,那么重新编制索引并使用.iat[]或.at[]可以显著提高性能