Pandas 基于条件获取数据框行数

Pandas 基于条件获取数据框行数

在本文中,我们将介绍如何使用Pandas获取数据框(DataFrame)中满足特定条件的行数。这对于数据分析和处理中的许多任务非常有用。

假设我们有一个包含以下数据的数据框:

序号 姓名 年龄 性别 成绩
1 Mike 22 M 80
2 Alice 25 F 90
3 Bob 21 M 85
4 Cindy 24 F 76
5 David 23 M 92
6 Erica 22 F 88
7 Frank 25 M 78

我们可以通过以下方法获取满足特定条件的行数:

阅读更多:Pandas 教程

1. 获取符合特定条件的行数

我们可以使用pandas.DataFrame.loc函数根据特定条件过滤数据框,然后使用len()函数获取符合条件的行数。例如,如果我们要获取所有性别为女性且成绩大于85的人数,可以进行如下操作:

df_filtered = df.loc[(df['性别'] == 'F') & (df['成绩'] > 85)]
count = len(df_filtered)
print(count)

输出为2,表示数据框中有两个女性考试成绩大于85分。

2. 获取符合特定条件的行数并将结果添加到数据框中

有时候,我们需要将符合特定条件的行数添加到数据框中,可以使用pandas.DataFrame.locpandas.DataFrame.at函数,例如:

df['女生数'] = df.loc[df['性别'] == 'F'].apply(lambda x:len(x), axis=1)
df.at[0, '女生数'] = len(df.loc[(df['性别'] == 'F') & (df.index != 0)])
print(df)

输出结果为:

序号 姓名 年龄 性别 成绩 女生数
1 Mike 22 M 80 2
2 Alice 25 F 90 2
3 Bob 21 M 85 2
4 Cindy 24 F 76 2
5 David 23 M 92 2
6 Erica 22 F 88 2
7 Frank 25 M 78 2

以上代码将女生数列添加到数据框中,并分别统计每个人之前的女生数和全部女生数。其中,df.loc[df['性别'] == 'F'].apply(lambda x:len(x), axis=1)用于统计每行性别为女性的数目,df.at[0, '女生数'] = len(df.loc[(df['性别'] == 'F') & (df.index != 0)])用于计算序号为1之后的女生数并添加到第一行的女生数列中。

总结

以上就是使用Pandas获取数据框中符合特定条件的行数的方法,其中pandas.DataFrame.loc函数用于过滤数据,len()函数用于计算符合条件的行数,pandas.DataFrame.at函数用于添加到数据框中。这些方法可以高效地完成数据分析和处理中的各种任务。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程