Pandas 如何在DataFrame中计算百分比

Pandas 如何在DataFrame中计算百分比

在本文中,我们将介绍Pandas库中DataFrame中计算百分比的方法。Pandas是一个用于数据分析、数据操作、数据可视化的Python库,它为我们提供了大量的函数和工具,方便我们快速进行数据分析与处理。

阅读更多:Pandas 教程

计算单列百分比

首先,我们来看一下如何计算DataFrame中单列的百分比。主要有两种方法,一种是通过将列数据除以总和再乘以100得到百分比,另一种是使用Pandas的apply()函数。

import pandas as pd

df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})

# 方法一
df['A_pct'] = df['A'] / df['A'].sum() * 100

# 方法二
df['B_pct'] = df['B'].apply(lambda x: x/df['B'].sum()*100)

print(df)
Python

输出结果如下:

   A  B      A_pct      B_pct
0  1  4  16.666667  22.222222
1  2  5  33.333333  27.777778
2  3  6  50.000000  50.000000
Python

以上代码中,我们首先创建了一个包含两列的DataFrame,然后分别使用两种方法计算列’A’和列’B’的百分比,并将百分比保存到新列’A_pct’和’B_pct’中。

计算多列百分比

当我们需要计算DataFrame中多列的百分比时,Pandas提供了很方便的函数div()来帮助我们完成这项操作。

df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})

df_pct = df.div(df.sum(axis=1), axis=0) * 100

print(df_pct)
Python

输出结果如下:

           A          B          C
0  7.142857  28.571429  64.285714
1  8.695652  21.739130  69.565217
2  9.090909  18.181818  72.727273
Python

以上代码中,我们首先创建了一个包含三列的DataFrame,然后使用div()函数计算DataFrame每行的百分比,并将结果保存到新的DataFrame’df_pct’中。参数axis=1表示在列方向上进行计算,即每行除以该行总和,然后乘以100得到百分比。

将百分比舍入到指定位数

在计算百分比时,有时候需要将结果舍入到指定位数。Pandas提供了函数round()可以满足这个需求。

df_pct = df_pct.round(2)

print(df_pct)
Python

以上代码中,我们使用round()函数将上面计算得到的百分比结果舍入到2位小数,并输出结果。输出结果如下:

      A     B      C
0  7.14 28.57  64.29
1  8.70 21.74  69.57
2  9.09 18.18  72.73
Python

统计百分比超过某个值的行数

在数据分析中,有时候需要统计百分比超过某个值的行数。我们可以使用Pandas的sum()函数和mean()函数来分别实现这个功能。

pct_threshold = 70

# 统计百分比超过70%的行数
print((df_pct > pct_threshold).sum())

# 统计百分比超过70%的行数占总行数的比例
print((df_pct > pct_threshold).mean())
Python

以上代码中,我们先设定一个百分比的阈值值为70%,然后分别使用sum()函数和mean()函数来统计超过该阈值的行数和比例。sum()函数会返回一个包含每列总计数值的Series,mean()函数会返回该Series每行大于阈值的比例。

总结

本文介绍了在Pandas库中进行DataFrame中计算百分比的方法。我们可以使用简单的算术运算,或是apply()函数来计算单列百分比,使用div()函数来计算多列百分比,使用round()函数将结果舍入到指定位数,使用sum()函数和mean()函数来统计超过某个阈值的行数和比例。掌握了这些方法,我们可以更加高效地进行数据处理和分析。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册