如何在Python数据框架中显示不为零的行和列

  • Post category:Python

在Python数据框架中,如果想要显示不为零的行和列,可以使用pandas库来实现。具体步骤如下:

1.导入pandas库

import pandas as pd

2.创建数据框架(以下数据仅为示例)

data = {'name': ['John', 'Sam', 'Emily', 'Jessica', 'Tom'],
        'age': [22, 45, 30, 28, 24],
        'score_math': [82, 76, 92, 88, 70],
        'score_english': [80, 85, 79, 92, 73],
        'score_science': [0, 68, 90, 0, 85]}
df = pd.DataFrame(data)

3.使用query函数来选择不为零的行和列

df2 = df.query('score_math != 0 and score_english != 0 and score_science != 0')

这里使用query函数,选择score_math、score_english和score_science三列不为零的行。使用!=操作符表示不等于零。

4.查看新的数据框架

print(df2)

输出:

     name  age  score_math  score_english  score_science
1     Sam   45          76             85             68
2   Emily   30          92             79             90
4     Tom   24          70             73             85

可以看到,该数据框架中只有三行的score_math、score_english和score_science列不为零,其他行都被过滤掉了。

除了query函数,还可以使用loc函数来选择行和列。例如,可以使用以下代码选择不为零的行和列:

df2 = df.loc[(df['score_math'] != 0) & (df['score_english'] != 0) & (df['score_science'] != 0), ['name', 'age', 'score_math', 'score_english', 'score_science']]

这里使用了loc函数,选择score_math、score_english和score_science三列不为零的行,并选择了name、age、score_math、score_english和score_science五列数据。使用&操作符表示“与”。

不论使用哪种方式,可以通过筛选条件来选择不为零的行和列,从而使数据更加清晰和易读。