2016-06-17 2 views
2

У меня есть ряд (business_day), который был создан с помощью isin для того, чтобы создать серию с DTYPE: BOOL:DataFrame логическое индексирование с помощью .loc

Series: 0 True 
1 True 
2 True 
... 
563 False 
566 False 
Name: Date, dtpye: bool 

Затем я попытался обновить еще один массив с помощью:

myArray.ix[business_day] 

и

myArray.loc[business_day] 

где

myArray: 
DataFrame: Date Epoch Value 
0 2016-05-17 2016-05-17 11:30:00 12345 
1 2016-05-17 2016-05-17 11:31:00 6789.7 
2 2016-05-17 2016-05-17 11:32:00 123.45 

Цель состоит в том, чтобы модифицировать только myArray, в соответствии с которыми строки являются «истинными» в соответствии с серией business_day. Однако используемый выше код не влияет. Где я здесь не так?

+0

Что вы имеете в виду никакого эффекта (при условии, что ты присвоить результат 'myArray.loc [business_day]' для некоторых переменных, как он не работает 'in_place')? если вы печатаете 'myArray.loc [business_day]', показывает ли оно столько же строк, сколько и раньше? – Stefan

+0

Точно: столько же строк, поэтому строка кода выше (myArray.loc [business_day]) не имеет значения. – pymat

ответ

1

Присвоить результат, как она не изменяет исходный DataFrame:

myarray = myarray.loc[business_day] 
+0

Такая глупая ошибка ... да, это было трюк! Спасибо, наслаждайтесь выходными. – pymat

+0

Какой? '.values' не обязательно. – Stefan

+0

myArray = myArray.loc [business_day] работал – pymat

Смежные вопросы