Pandas:如何计算有条件的列中的值
您可以使用以下方法来统计 Pandas DataFrame 列中具有特定条件的值的数量:
方法一:统计有条件的列中的值
len(df[df[' col1 ']==' value1 '])
方法二:带条件统计多列中的值
len(df[(df[' col1 ']==' value1 ') & (df[' col2 ']==' value2 ')])
以下示例展示了如何在实践中使用以下 pandas DataFrame 的每种方法:
import pandas as pd
#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
' pos ': ['Gu', 'Fo', 'Fo', 'Fo', 'Gu', 'Gu', 'Fo', 'Fo'],
' points ': [18, 22, 19, 14, 14, 11, 20, 28]})
#view DataFrame
print (df)
team pos points
0 A Gu 18
1 A Fo 22
2 A Fo 19
3 A Fo 14
4 B Gu 14
5 B Gu 11
6 B Fo 20
7 B Fo 28
示例1:对有条件的列中的值进行计数
以下代码展示了如何计算team列中值等于“A”的值的数量:
#count number of values in team column where value is equal to 'A' len(df[df[' team ']==' A ']) 4
我们可以看到 team 列中有4 个值等于“A”的值。
示例2:有条件地统计多列中的值
以下代码显示如何计算 DataFrame 中team列等于“B”且pos列等于“Gu”的行数:
#count rows where team is 'B' and pos is 'Gu' len(df[(df[' team ']==' B ') & (df[' pos ']==' Gu ')]) 2
我们可以看到 DataFrame 中有2行满足这两个条件。
我们可以使用类似的语法来计算满足所需条件数量的行数。
例如,以下代码显示如何计算满足三个条件的行数:
- 该团队等于“B”
- pos等于 ‘Gu’
- 点数大于12
#count rows where team is 'B' and pos is 'Gu' and points > 15 len(df[(df[' team ']==' B ') & (df[' pos ']==' Gu ') & (df[' points ']> 12 )]) 1
我们可以看到 DataFrame 的一行满足所有三个条件。
其他资源
以下教程解释了如何在 pandas 中执行其他常见任务:
Pandas:如何找到两条线之间的差异
Pandas:如何删除包含特定字符串的行
Pandas:如何删除 DataFrame 中的重复行