#python #pandas #dataframe
#python #pandas #фрейм данных
Вопрос:
У меня есть фрейм данных, который выглядит следующим образом:
item storage
record paper
record laptop
record desktop
file laptop
file paper
file paper
record desktop
file desktop
Если я хочу новый фрейм данных с 2 критериями, такими как «запись» в столбце «элемент» и «ноутбук» или настольный компьютер в столбце «хранилище», есть ли более простой способ выбрать этот набор данных, а не:
df1=df[(df['item'] == 'record') amp; (df['storage'] == 'laptop')]
df2=df[(df['item'] == 'record') amp; (df['storage'] == 'desktop')]
df3= pd.concat([df1, df2], axis=1)
Есть ли более короткий способ сделать это что-то в одной строке, например:
df3=df[(df['item'] == 'record') amp; (df['storage'] == 'laptop' or 'desktop')] #This does not work
Комментарии:
1.
df['storage'] in ('laptop', 'desktop')
?
Ответ №1:
вы можете изменить одно из условий на .isin
:
>>> df['storage'].isin(['laptop', 'desktop'])
итак:
>>> df[(df['item'] == 'record') amp; (df['storage'].isin(['laptop', 'desktop']))]
item storage
1 record laptop
2 record desktop
6 record desktop
Комментарии:
1. Вы отредактировали свой ответ быстрее, чем я смог опубликовать свой, который был идентичен вашему 😉