Pandas:使用 pd.at 和条件选择单元格值

Zub*_*ubo 2 python pandas

我想从 Pandas 数据框中选择特定的单元格值。我想过滤掉 A 列中具有特定值的行,然后从 B 列中获取值。

据我了解,正确的方法是使用df.at,所以我尝试过

df.at(df['Column A' == column_A_value]['Column B'])
Run Code Online (Sandbox Code Playgroud)

但这行不通。我也尝试过,作为黑客,

str(['Column A' == column_A_value]['Column B'])
Run Code Online (Sandbox Code Playgroud)

也不行。

这样做的正确方法是什么?

编辑:

我想做的是输出更大循环内的值,例如:

while condition:
    for val in some_column_A_values:
        print("{},{}".format('stuff', df.at(df['Column A' == val]['Column B'])), file=myfile)
Run Code Online (Sandbox Code Playgroud)

Mar*_*ger 5

正如 Anton vBR 所指出的,这应该可以解决您的问题

filtered = df.loc[df['Column A'] == column_A_value]['Column B']
Run Code Online (Sandbox Code Playgroud)

如果您只想获得一个值,您可以这样做:

list(df.loc[df['Column A'] == column_A_value]['Column B'])[0]
Run Code Online (Sandbox Code Playgroud)