Python数据帧:在同一行中查找与另一列中的定义值相同的值

时间:2018-04-09 17:01:59

标签: python pandas if-statement dataframe indexing

我有一个庞大的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。

2 个答案:

答案 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]

会给你这个价值。