我有一个pandas数据框,列“Category”和“Total”。可以有4个不同的类别:A、B、C、D。我将每个类别的切点值作为dict给我。我需要排除总计超过相应切点的所有条目。这很好:
cat = weekly_units['Category']
total = weekly_units['Total']
weekly_units = weekly_units[(cat == 'A') & (total <= cutpoints['A'])
| (cat == 'B') & (total <= cutpoints['B'])
| (cat == 'C') & (total <= cutpoints['C'])
| (cat == 'D') & (total <= cutpoints['D'])]
但我发现它又湿又不协调。 有没有办法写这样的东西?在
^{pr2}$
这是干巴巴的,简单明了:
注意,这跟在official advice后面的是“使用函数工具.reduce()如果您确实需要它;但是,在99%的情况下,显式for循环更具可读性。”
还有一种使用
^{pr2}$reduce()
的标准库方法,但正如承诺的那样,它的可读性较差:是的。您要找的是^{} :
假设您的
Category
列实际上是CategoricalDtype
,您还可以执行以下操作:相关问题 更多 >
编程相关推荐