Если вы пришли сюда, чтобы выбрать строки из фрейма данных, включив те, чье значение столбца НЕ является ни одним из списка значений, вот как перевернуть ответ unutbu для списка значений выше:
df.loc[~df['column_name'].isin(some_values)]
(Чтобы не включать одно значение, конечно, вы просто используете обычный оператор не равно, !=
.)
Пример:
import pandas as pd
df = pd.DataFrame({'A': 'foo bar foo bar foo bar foo foo'.split(),
'B': 'one one two three two two one three'.split()})
print(df)
дает нам
A B
0 foo one
1 bar one
2 foo two
3 bar three
4 foo two
5 bar two
6 foo one
7 foo three
Подмножество только для тех строк, которые ARE NOT one
или three
в столбце B
:
df.loc[~df['B'].isin(['one', 'three'])]
дает
A B
2 foo two
4 foo two
5 bar two
Вы можете использовать вычисленное свойство непосредственно в представлении - нет необходимости назначать его вручную данным.
Кроме того, _.sumBy()
принимает только одно свойство. Получите quantity
, используя _.sumBy()
, а для MRP
получите 1-й элемент MRP
и умножьте его на сумму quantity
.
new Vue({
el: '#app',
data() {
return {
SaleReports: [{"ProductId":"PVk2WIKjZJ","quantity":2,"MRP":15},{"ProductId":"PQ_bCOJx5h","quantity":2,"MRP":250},{"ProductId":"PVk2WIKjZJ","quantity":1,"MRP":15},{"ProductId":"PQ_bCOJx5h","quantity":1,"MRP":250}],
}
},
computed: {
SummationReports() {
return _(this.SaleReports)
.groupBy('ProductId')
.map((g, ProductId) => {
const quantity = _.sumBy(g, 'quantity')
return ({
ProductId: ProductId,
quantity,
MRP: quantity * _.get(g, '[0].MRP'),
})
})
.values()
.value()
}
},
})
/** hide the annoying vue dev mode messages **/
.as-console-wrapper {
display: none !important;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<pre>{{ SummationReports }}</pre>
</div>