我有一个庞大的Pandas数据帧:
Time P T R H
00000.0 1004.6 12.2 96 12
00001.0 1004.2 12.1 96 15
00002.0 1003.5 11.9 96 21
00003.0 1002.8 12.0 96 27
00004.0 1002.0 12.1 96 34
00005.0 1001.4 12.1 96 39
00006.0 1000.3 12.2 96 48
00007.0 999.5 12.1 96 55
00008.0 998.9 12.2 96 59
00009.0 998.0 12.1 96 67
00010.0 997.3 13.1 96 73
00011.0 996.9 13.2 97 76
00013.0 995.3 13.3 97 90
00014.0 994.6 13.6 97 96
00015.0 994.3 13.5 97 98
00016.0 993.6 13.5 96 104
00017.0 992.5 13.3 96 114
00018.0 991.8 13.3 96 119
00019.0 991.7 13.7 97 120
我希望在另一列(同一行)中的值具有定义值时连续找到该值。例如,我想编写一个代码来查找" T"值在同一行中,其中" P"值是1002.8。
答案 0 :(得分:3)
IIUC,使用boolean indexing:
df.loc[df.P == 1002.8, 'T']
输出:
3 12.0
Name: T, dtype: float64
或者使用该值:
df.loc[df.P == 1002.8, 'T'].values[0]
输出
12.0
答案 1 :(得分:0)
df['T'].where(df['P'] == 1002.8)
将为您提供一个系列,其中NaN的条件为False,而T的值为True。
df['T'].where(df['P'] == 1002.8).dropna()
将为您提供仅包含满足条件的值的系列。
如果是这种情况,正如你所说,这只会发生一次,那么
df['T'].where(df['P'] == 1002.8).dropna().values[0]
会给你这个价值。