gpt4 book ai didi

python - 在每个数据集中创建包含 3 组数据的图表

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

我正在处理一个 CSV 文件,其中包含如下数据,我已将其转换为数据集。我到目前为止的代码:

import pandas as pd
import matplotlib.pyplot as plt

import seaborn as sns
df = pd.read_csv('MH_12.csv')
df = df.set_index("Country")

df2 = df.loc["Colombia", "2005"]
print(df2.values)

Dataset2015 = {"Both sex":[ 7.1],
"Male" :[10.9],
"Female" :[ 3.1]}
Dataset2010 = {"Both sex":[ 7.0],
"Male" :[11.1],
"Female" :[ 2.8]}
Dataset2005 = {"Both sex":[ 7.3],
"Male" :[11.7],
"Female" :[ 2.6]}
Dataset2000 = {"Both sex":[ 6.7],
"Male" :[10.9],
"Female" :[ 2.3]}

我想做的是将其转换为柱形图,每个数据集按年份(2015 年、2010 年、2005 年和 2000 年)分隔,但在这些年组中,它们有 3 列男女,男性和女性。如果数据集中只有两组数据(例如,如果这只有性别和男性),我很熟悉创建柱形图。

这是我尝试使用的代码:

df3 = pd.DataFrame(Dataset2015)
df3['year'] = '2015'
df4 = pd.DataFrame(Dataset2010)
df4['year'] = '2010'
df5 = pd.DataFrame(Dataset2005)
df5['year'] = '2005'
df6 = pd.DataFrame(Dataset2000)
df6['year'] = '2000'
df7 = pd.concat([df3,df4,df5,df6])
sns.factorplot(errcolor=".2", edgecolor=".2", data = df, hue='country', x='year', y='Mental Health Issues per 100,000 Population', kind='bar', ci=None, aspect=3, size=7);
plt.title('Mental Health Issues in Colombia')
plt.xticks(rotation=45);
plt.show()

运行代码时出现错误“Year”,这是可以理解的。我将色调保留为“国家/地区”,但一旦我弄清楚如何正确使用它就会改变。

问题:当我的每个数据集都包含三个数据点时,如何创建柱状图?我检查了 Python API,但找不到类似的问题。

最佳答案

我认为需要melt对于 3 列 DataFrame:

df8 = df7.melt('year', var_name='sex', value_name='a')
print (df8)
year sex a
0 2015 Both sex 7.1
1 2010 Both sex 7.0
2 2005 Both sex 7.3
3 2000 Both sex 6.7
4 2015 Female 3.1
5 2010 Female 2.8
6 2005 Female 2.6
7 2000 Female 2.3
8 2015 Male 10.9
9 2010 Male 11.1
10 2005 Male 11.7
11 2000 Male 10.9

sns.factorplot(errcolor=".2",
edgecolor=".2",
data = df8,
hue='sex',
x='year',
y='a',
kind='bar',
ci=None,
aspect=3,
size=7)

关于python - 在每个数据集中创建包含 3 组数据的图表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49509946/

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