线型数据图未出现

时间:2019-04-05 08:27:02

标签: python dataframe dataset

有我要绘制的数据集(可以在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"])

我想到的图是这个

plot

出了点问题,但我找不到。

1 个答案:

答案 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