Python 如何测试数据帧最后一行中的特定值(使用-1)

Python 如何测试数据帧最后一行中的特定值(使用-1),python,pandas,indexing,slice,ambiguous,Python,Pandas,Indexing,Slice,Ambiguous,我有一个不断更新的数据帧(一分钟一分钟),每分钟追加一行。我希望对特定列中数据帧中的最后一个值进行条件测试。我一直在尝试使用[-1:]指定最后一行和['columnname']。但是,这将返回一个序列,然后返回错误“序列的真值不明确…等等”。 如何引用特定列最后一行中的值并有条件地对其进行测试 import pandas as pd data = {'D' : (1, 2, 3, 4, 5, 6), 'O' : (4, 5, 3, 7, 9, 1),

我有一个不断更新的数据帧(一分钟一分钟),每分钟追加一行。我希望对特定列中数据帧中的最后一个值进行条件测试。我一直在尝试使用[-1:]指定最后一行和['columnname']。但是,这将返回一个序列,然后返回错误“序列的真值不明确…等等”。 如何引用特定列最后一行中的值并有条件地对其进行测试

    import pandas as pd
    data = {'D' : (1, 2, 3, 4, 5, 6),
            'O' : (4, 5, 3, 7, 9, 1),
            'OS' : (6, 1, 2, 0, 6, 4),
            'MAC' : (3, 6, 8, 6, 7, 9)}
    df = pd.DataFrame(data)

然后测试最后一行和“MAC”列:

    if df[-1:]['MAC'] == 9:
        print('OK - It works now!')
返回“ValueError:序列的真值不明确…” 我试过很多公式,使用at,iat,get_值,value,loc,iloc,index, 最简单的公式:

    df[-1:]['MAC']
返回一个系列(包括索引和实际值):


当然,这是一个非常简单的问题…(就我而言)…感谢标量可以将序列转换为numpy数组并选择最后一个值:

if df['MAC'].values[-1:] == 9:
    print('OK - It works now!')
或者用
-1
按位置选择最后一行和列的位置
MAC

if df.iloc[-1, df.columns.get_loc('MAC')] == 9:
    print('OK - It works now!')
或按标签选择,但必须使用索引的最后一个值:

if df.loc[df.index[-1], 'MAC'] == 9:
    print('OK - It works now!')
使用:


我认为这似乎是一个好主意,但如果“检查始终”是最好的选择,请避免在熊猫中使用
][
if df.loc[df.index[-1], 'MAC'] == 9:
    print('OK - It works now!')
>>> df.iloc[-1]['MAC']
9