Поместить фрейм данных в другой фрейм - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть два кадра данных панд: df1

   IDs          Value1      Value2        Value     Value4
   AB              1          1             1       5
   BC              2          2             2       3
   BG              1          1             4       1
   RF              2          2             2       7

и df2

   Index          0                1             2         3
   1              True           False          True       True
   2              False          False          True       False
   3              False          False          True       False
   4              False          False          False      False

с одинаковым количеством столбцов и строк.df1 содержит integer значений, а df2 содержит Boolean значений.То, что мне нужно, это задать подмножество df1 следующим образом: получить только столбцы, которые в df2 имеют хотя бы значение True.

Ожидаемый результат:

   IDs          Value1         Value3     Value4
   AB              1              1       5
   BC              2              2       3
   BG              1              4       1
   RF              2              2       7

Как я могу сделать это без итераций и списков, но используя функции панд?

Ожидаемый выход: Спасибо.

1 Ответ

0 голосов
/ 17 сентября 2018

Не уверен, что этот тип вопросов подходит для stackoverflow, но есть способ:

d1 = df1.values # extract values as numpy array, should be int
d2 = df2.values # extract values as numpy array, should be bool
d2_any = np.any(d2,axis=0) # sets true if any of the values along the axis is true. see official man.
selected = d1[:,d2_any] # select the correct columns
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...