首页 > 解决方案 > 如何根据分类变量对 pandas 数据框进行切片 - ei Country

问题描述

我正在尝试创建一个简单的折线图,以说明 GDP 排名前 10 位的国家的二氧化碳排放量随时间的变化。

我对python和pandas有点陌生,虽然我想出了以下方法——通过切片主df并为每个国家创建更小的数据框,我知道有一种更简单的方法可以做到这一点,我只是无法找到一种更有效的方法来分割数据并分配必要的变量以使所有线条都显示在一张图表上。

数据链接(csv)——https: //www.kaggle.com/yoannboyere/co2-ghg-emissionsdata

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from pylab import rcParams
import seaborn as sb


# Importing the dataset
df = pd.read_csv('co2_emission.csv')

df_China= df.loc[df['Entity'] == 'China']
X2 = df_China.iloc[:,2]
y2 = df_China.iloc[:,3]

df_Japan=df.loc[df['Entity']=='Japan']
X3 = df_Japan.iloc[:,2]
y3 = df_Japan.iloc[:,3]

plt.plot(X2,y2, label='China')
plt.plot(X3,y3, label='Japan')

plt.legend()
plt.title('CO2 Emissions of Nations with the Top 10 GDP')
sb.set_style(style='darkgrid')
plt.show()

我想创建的示例(但添加了 8 行)

标签: pythonpandasdataframe

解决方案


我看到您正在导入 seaborn,在这种情况下,您可以使用它来简化操作:

df = pd.read_csv('co2_emission.csv')
sns.lineplot(data=df, hue='Entity', y='Annual CO₂ emissions (tonnes )', x='Year')

推荐阅读