python - 如何根据分类变量对 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()
解决方案
我看到您正在导入 seaborn,在这种情况下,您可以使用它来简化操作:
df = pd.read_csv('co2_emission.csv')
sns.lineplot(data=df, hue='Entity', y='Annual CO₂ emissions (tonnes )', x='Year')
推荐阅读
- javascript - 从选中的复选框Javascript中获取多个值
- c# - 安装新版本后“找到的程序集的清单定义与程序集引用不匹配”
- css - mydaterangepicker 和 primeng 有问题,它在表头中显示不好,有人可以帮我吗
- javascript - 我正在尝试进行 while 循环,但循环是无限的,我不确定为什么
- docker - 如何设置 php 配置文件 (php.ini) 在 laradock 的 phpmyadmin 容器中使用
- elasticsearch - Elasticsearch 聚合:访问附加字段的策略
- python - 在python中计算给定阈值的置信度
- python - Pandas:使用规则将数据框中两列的字符串值组合成一个新列
- javascript - JSSOR Slider 在移至下一张幻灯片时删除幻灯片数据(我在 EVT_SWIPE_END 事件上附加幻灯片)
- sockets - WinSock:服务器未按与客户端发送的相同序列接收数据