在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[]可以显著提高性能