Как установить подкадр данных, не назначая его переменной? - PullRequest
1 голос
/ 30 апреля 2020

Я хотел бы установить подкадр данных без его предварительного присвоения переменной.

Пример с присваиванием:

df = pd.DataFrame({'A': range(10), 'B': range(5, 15)})
df[(df['A'] > 3) & (df['B'] < 12)]

Результат:

   A   B
4  4   9
5  5  10
6  6  11

Как сделать это без создания df первым?

Что-то вроде ...

pd.DataFrame({'A': range(10), 'B': range(5, 15)}).loc[..., ...]

Или, может быть, использовать .pipe()?

1 Ответ

1 голос
/ 30 апреля 2020

Использование выбор по номеру :

df = (pd.DataFrame({'A': range(10), 'B': range(5, 15)})
        .loc[lambda x: (x['A'] > 3) & (x['B'] < 12)])
print (df)
   A   B
4  4   9
5  5  10
6  6  11

Еще одна идея с query, спасибо @sammywemmy:

df = pd.DataFrame({'A': range(10), 'B': range(5, 15)}).query("A > 3 and B < 12")
#working same
df = pd.DataFrame({'A': range(10), 'B': range(5, 15)}).query("A > 3 & B < 12")
...