mat*_*ter 3 python python-3.x pandas
什么是更优雅的写作方式:
df[df['income'] > 0].count()['income']
Run Code Online (Sandbox Code Playgroud)
我想简单地计算满足条件的列值的数量(在本例中,条件只是大于零,但我想要一种适用于任何任意条件或条件集的方法)。如果列名不需要在表达式中出现两次,显然会更优雅。希望应该很容易。
小智 5
df = pd.DataFrame([0, 30000, 75000, -300, 23000], columns=['income'])
print(df)
income
0 0
1 30000
2 75000
3 -300
4 23000
Run Code Online (Sandbox Code Playgroud)
如果您想对列中满足比仅仅为正数稍微复杂的条件的值进行计数,例如“值在 5000 到 25000 的范围内”,您可以使用两种方法。
首先,使用布尔索引,
((df['income'] > 5000) & (df['income'] < 25000)).sum()
Run Code Online (Sandbox Code Playgroud)
其次,对系列的每一行应用一个函数,
df['income'].map(lambda x: 5000 < x < 25000).sum()
Run Code Online (Sandbox Code Playgroud)
请注意,第二种方法允许任意复杂的条件,但比第一种方法慢得多,第一种方法在底层数组上使用低级操作。有关更多信息,请参阅有关布尔索引的文档。
| 归档时间: |
|
| 查看次数: |
6781 次 |
| 最近记录: |