Pandas:如何创建条形图来可视化前 10 个值
您可以使用以下基本语法在 pandas 中创建条形图,其中仅包含特定列中最常见的 10 个值:
import pandas as pd import matplotlib. pyplot as plt #find values with top 10 occurrences in 'my_column' top_10 = (df[' my_column ']. value_counts ()). iloc [:10] #create bar chart to visualize top 10 values top_10. plot (kind='bar')
以下示例展示了如何在实践中使用此语法。
示例:在 Pandas 中创建条形图以可视化前 10 个值
假设我们有以下 pandas DataFrame,其中包含有关球队名称和 500 名不同篮球运动员得分的信息:
import pandas as pd import numpy as np from string import ascii_uppercase import random from random import choice #make this example reproducible random. seeds (1) n.p. random . seeds (1) #createDataFrame df = pd. DataFrame ({' team ': [choice(ascii_uppercase) for _ in range(500)], ' points ': np. random . uniform (0, 20, 500)}) #view first five rows of DataFrame print ( df.head ()) team points 0 E 8.340440 1 S 14.406490 2 Z 0.002287 3 Y 6.046651 4 C 2.935118
我们可以使用以下语法创建一个条形图,显示团队列中出现频率最高的 10 个值:
import matplotlib. pyplot as plt #find teams with top 10 occurrences top_10_teams = (df[' team ']. value_counts ()).[:10] #create bar chart of top 10 teams top_10_teams. plot (kind=' bar ')
条形图仅包含 10 个最常出现的团队的名称。
x 轴显示团队名称,y 轴显示频率。
请注意,我们还可以自定义绘图,使其更加美观:
import matplotlib. pyplot as plt #find teams with top 10 occurrences top_10_teams = (df[' team ']. value_counts ()).[:10] #create bar chart of top 10 teams top_10_teams. plot (kind=' bar ', edgecolor=' black ', rot=0) #add axis labels plt. xlabel (' Team ') plt. ylabel (' Frequency ')
请注意, edgecolor参数在每个条形周围添加了黑色边框,而rot参数将 x 轴标签旋转 90 度,以使它们更易于阅读。
其他资源
以下教程解释了如何在 pandas 中执行其他常见任务: