Python Matplotlib-如何绘制df的前20名



我试图用条形图显示我的csv文件,并试图只显示前20个数据,下面我试图删除从0到175的数据,以显示其余数据,但结果是它只删除了第0行和第175行。我如何从0到175,我试着做0:175,但它被标记为错误

import pandas as pd
from matplotlib import pyplot as plt
df = pd.read_csv('MAY_2021_COVID_CLEANED.csv')

df = df.drop([0,175],axis=0)
print(df)
#assigning variables
x = df['Country']
y = df['Death Count']
#Graphing
plt.bar(x,y)
plt.xticks(rotation=90,fontsize=5)
plt.title("Number of Death per Country")
plt.ylabel("Number of Death")
plt.xlabel("Country")
plt.show()

如何从0到175,我试着做0:175,但它被标记为错误

您可能会使用内置的range来执行此任务,请考虑以下简单示例:

import pandas as pd
df = pd.DataFrame({'value':[0,1,2,3,4,5,6,7,8,9]})
df = df.drop(range(0,5),axis=0)
print(df)

输出

value
5      5
6      6
7      7
8      8
9      9

注意,range是包含-独占的,因此删除了行01234——开始(0(是包含的,结束(5(是独占的。

你试过切片吗?这应该有效:

import pandas as pd
from matplotlib import pyplot as plt
df = pd.read_csv('MAY_2021_COVID_CLEANED.csv')
df = df[:20]
#assigning variables
x = df['Country']
y = df['Death Count']
#Graphing
plt.bar(x,y)
plt.xticks(rotation=90,fontsize=5)
plt.title("Number of Death per Country")
plt.ylabel("Number of Death")
plt.xlabel("Country")
plt.show()

如果只想绘制最后20行,可以使用DataFrame.tail

df = df.tail(20)

如果您想要一个系列的前20个值,请使用DataFrame.nlargest

df = df.nlargest(20, "Death Count")

最新更新