有我要绘制的数据集(可以在https://www.kaggle.com/russellyates88/suicide-rates-overview-1985-to-2016处获得)。我想绘制2000年至2015年俄罗斯联邦25-34岁男性和女性的suicides_no。所以我为此创建了一个新的数据框。
这是主数据框。
DF = pd.read_csv("D:/who_suicide_statistics.csv")
这是我用于创建新数据框的代码。
DF1 = (DF.loc[(DF["country"] == "Russian Federation") & (DF["age"] == "25-34 years")
& (DF["sex"] == "male") & (DF["year"] >= 2000)])
DF2 = (DF.loc[(DF["country"] == "Russian Federation") & (DF["age"] == "25-34 years")
& (DF["sex"] == "female") & (DF["year"] >= 2000)])
year_sex_suicides = {}
year_sex_suicides["year"] = DF1["year"]
year_sex_suicides["male_suicides"] = DF1["suicides_no"]
year_sex_suicides["female_suicides"] = DF2["suicides_no"]
DF333 = pd.DataFrame(data=year_sex_suicides)
这是我想要的情节的代码。
DF333.plot(kind="line", x="year", y=["male suicides", "female_suicides"])
我想到的图是这个
出了点问题,但我找不到。
答案 0 :(得分:0)
您可能要绘制的数据集中有很多<div class="A">content inside A</div>
<div class="B">content inside B</div>
<div class="C">content inside C</div>
<div class="D">content inside D</div>
(例如,通过评估NaN
来查看DataFrame)。
您可以使用类似的方法填充它们(虽然这不是一个好方法!):
print(DF333)
或在构建数据框时重置索引:
DF333.fillna(method='ffill', inplace=True)
这样,您可以确保将所有内容都放入与年份匹配的行中,而不是原始CSV文件中的行索引中。当然,您也可以使用类似Panda的groupby之类的东西,它也会减少代码行的数量(但也许以后也需要DF1 = (DF.loc[(DF["country"] == "Russian Federation") & (DF["age"] == "25-34 years")
& (DF["sex"] == "male") & (DF["year"] >= 2000)])
DF1 = DF1.set_index('year')
DF2 = (DF.loc[(DF["country"] == "Russian Federation") & (DF["age"] == "25-34 years")
& (DF["sex"] == "female") & (DF["year"] >= 2000)])
DF2 = DF2.set_index('year')
year_sex_suicides = {}
year_sex_suicides["male_suicides"] = DF1["suicides_no"]
year_sex_suicides["female_suicides"] = DF2["suicides_no"]
DF333 = pd.DataFrame(data=year_sex_suicides)
DF333.plot(kind="line", y=["male_suicides", "female_suicides"])
等用于其他目的):
DF1