Pandas:如何将 value_counts 表示为百分比
您可以使用 pandas 中的value_counts()函数来计算 DataFrame 给定列中值的出现次数。
要将值表示为百分比,可以使用以下方法之一:
方法1:将值表示为百分比(格式为小数)
df. my_col . value_counts (normalize= True )
方法2:将值表示为百分比(用百分号符号格式化)
df. my_col . value_counts (normalize= True ). mul ( 100 ). round ( 1 ). astype (str) + ' % '
方法 3:将值计数表示为百分比(带计数)
counts = df. my_col . value_counts () percs = df. my_col . value_counts (normalize= True ) p.d. concat ([counts, percs], axis= 1 , keys=[' count ', ' percentage '])
以下示例展示了如何在实践中使用以下 pandas DataFrame 的每种方法:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'B', 'B', 'B', 'B', 'B', 'C'], ' points ': [15, 12, 18, 20, 22, 28, 35, 40]}) #view DataFrame print (df) team points 0 to 15 1 to 12 2 B 18 3 B 20 4 B 22 5 B 28 6 B 35 7 C 40
示例 1:将值表示为百分比(格式为小数)
以下代码显示如何计算团队列中每个值的出现次数,并将出现次数表示为总数的百分比(采用小数格式):
#count occurrence of each value in 'team' column as percentage of total df. team . value_counts (normalize= True ) B 0.625 At 0.250 C 0.125 Name: team, dtype: float64
从结果我们可以看出:
- 值B代表团队列中出现次数的 62.5%。
- 值A代表团队列中 25% 的出现次数。
- C值代表团队栏中出现的12.5%。
请注意,百分比格式为小数。
示例 2:将值表示为百分比(使用百分比符号格式化)
以下代码显示如何计算团队列中每个值的出现次数,并将出现次数表示为总数的百分比,并使用百分比符号进行格式化:
#count occurrence of each value in 'team' column as percentage of total df. team . value_counts (normalize= True ). mul ( 100 ). round ( 1 ). astype (str) + ' % ' B 62.5% At 25.0% C 12.5% Name: team, dtype: object
请注意,百分比被格式化为带有百分号符号的字符串。
示例 3:将值的数量表示为百分比(带数字)
以下代码显示如何计算team列中每个值的出现次数,并将出现次数表示为数字和百分比:
#count occurrence of each value in 'team' column counts = df. team . value_counts () #count occurrence of each value in 'team' column as percentage of total percs = df. team . value_counts (normalize= True ) #concatenate results into one DataFrame p.d. concat ([counts, percs], axis= 1 , keys=[' count ', ' percentage ']) count percentage B 5 0.625 At 2 0.250 C 1 0.125
请注意,计数列显示团队列中每个唯一值的计数,而百分比列将每个唯一值显示为出现总数的百分比。
其他资源
以下教程解释了如何在 pandas 中执行其他常见任务: