Пример dataframe:
import pandas as pd
df = pd.DataFrame({'a': [-3, -2, 0], 'b': [-2, 2, 5], 'c': [-1, 0, 7], 'd': [1, 4, 8]})
Я пытаюсь сделать что-то, что, как я ожидаю, будет довольно простым, и что действительно актуально в других языках, поддерживающих класс dataframe, таких как R. Я простоЯ хочу извлечь одно значение из df
, с единственным предупреждением, что я выбираю строку с логическим выражением (скажем, `" a "== 0) вместо использования метки.Вместо этого столбец выбирается по метке, как обычно.Например, это работает, но кажется излишне расточительным:
df["c"][df["a"]==0][1]
Вместо того, чтобы непосредственно извлекать значение из кадра данных, эта инструкция 1) извлекает серию Pandas, 2) выбирает строку в ряду и 3) выбирает второй элемент массива, возвращаемый выбором строки!(первый элемент - индекс).Мало того, что это кажется излишне сложным, но я волнуюсь, что это может также быть медленным для очень больших фреймов данных.
Я пробовал другие решения, используя .at
или .iat
, но, похоже, ничего не работает.Разве нет более простого / умного способа сделать это?