涉及内容:使用for循环对DataFrame中的全部数据做映射变换(没有使用映射方法),并把多列数据合并为一长列,最后结合seaborn库绘制出九个字段的直方图,并使用3×3的方式排列图表在一张画布上。
导包
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
小啾某次做数据分析,处理部分清洗后问卷数据df5如下:
其中A、B、C、D、E分别表示的是群众对该意见的支持度,1,2,3,4,5。
然后将数据转化为支持度:
df6 = pd.DataFrame(index=range(len(df5)))
for i in df5.columns:
a = []
for j in df5[[i]].values:
if j == 'A':
a.append(1)
elif j == 'B':
a.append(2)
elif j == 'C':
a.append(3)
elif j == 'D':
a.append(4)
elif j == 'E':
a.append(5)
df6[i[3:]] = a
print(df6)
使用pandas的melt方法把“宽”数据的多列合并成为一长列。
d = {
"建议1": df6[["建议1"]].values,
"建议2": df6[["建议2"]].values,
"建议3": df6[["建议3"]].values,
"建议4": df6[["建议4"]].values,
"建议5": df6[["建议5"]].values,
"建议6": df6[["建议6"]].values,
"建议7": df6[["建议7"]].values,
"建议8": df6[["建议8"]].values,
"建议9": df6[["建议9"]].values
}
m = pd.melt(df6)
print(m)
m输出如下:
将九个字段,绘制出九个条形图,代码如下:
sns.set_style('darkgrid')
plt.rcParams['font.sans-serif'] = ['STKAITI']
g = sns.FacetGrid(m, col='variable', col_wrap=3)
g = g.map(sns.histplot, 'value')
图像效果如下:
本次练习分享就到这里,小啾祝您学习愉快!
🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)