Python Pandas - 根据总和从 DataFrame 中过滤列

为了根据列的总和进行过滤,我们使用loc()方法。在这里,在我们的示例中,我们将每个学生的分数相加以获得分数高于 400 的学生列,即 80%。

首先,创建一个包含学生记录的 DataFrame。我们有 3 名学生i.e3 列的分数记录-

dataFrame = pd.DataFrame({
   'Jacob_Marks': [95, 90, 75, 85, 88],'Ted_Marks': [60, 50, 65, 85, 70],'Jamie_Marks': [77, 76, 65, 45, 50]})

基于列过滤。获取总分高于 400 的学生 -

dataFrame = dataFrame.loc[:, dataFrame.sum(axis=0) > 400]

示例

以下是完整的代码 -

import pandas as pd

# 创建一个包含 3 列的数据框
dataFrame = pd.DataFrame({
   'Jacob_Marks': [95, 90, 75, 85, 88],'Ted_Marks': [60, 50, 65, 85, 70],'Jamie_Marks': [77, 76, 65, 45, 50]})

print"Dataframe...\n",dataFrame

# 基于列过滤
# 招收总分400以上的学生
dataFrame = dataFrame.loc[:, dataFrame.sum(axis=0) > 400]

# 数据框
print"Updated Dataframe...\n",dataFrame
输出结果

这将产生以下输出 -

Dataframe...
   Jacob_Marks   Jamie_Marks   Ted_Marks
0          95            77          60
1          90            76          50
2          75            65          65
3          85            45          85
4          88            50          70
Updated Dataframe...
   Jacob_Marks
0          95
1          90
2          75
3          85
4          88