gpt4 book ai didi

python - 如何根据两个选定的 Pandas 系列绘制 ​​CDF 图

转载 作者:太空宇宙 更新时间:2023-11-04 04:45:42 25 4
gpt4 key购买 nike

背景

我有一个包含三个变量的数据框:

  • city:中国境内的城市名称。
  • pop:对应城市的人口数量。
  • conc:对应城市的环境污染物浓度。

我想按人群调查浓度的累积分布。

示例图如下所示:

enter image description here

示例数据集已上传 here

我的解决方案

df = pd.read_csv("./data/test.csv",)    
df = df[df.columns[1:]]
df = df.sort_values(by=['pm25'],ascending=False)
df = df.reset_index()

x_ = df['pm25'].values
y_ = []
for i in range(0,len(df)-1,1):
y_.append(df['pop'].iloc[:i+1].sum()/df['pop'].sum())
y_.append(1.0)
plt.plot(x_,y_)

enter image description here

1.

非常感谢任何更好的方法!

2.

还有,如何让曲线像第一个plot一样平滑?

最佳答案

您可以使用 pd.Series.cumsum 替换循环:

y_ = df.pop.cumsum() / df.pop.sum()

为了平滑,你可以使用pd.Series.rolling :

plot(x_, y_.rolling(3).mean())

应用低通滤波器(长度为 3)。但是,您应该考虑这是否是您想要的 - 您的情节似乎是正确的。

关于python - 如何根据两个选定的 Pandas 系列绘制 ​​CDF 图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49691847/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com