#---------------------------------------------------------# #--- * 我的 列联表数据构造 * ----# #--------------------------------------------------------# like = np.array([[1, 2, 3], [1, 2, 3], [1, 2, 3]]) freq = np.repeat(like, [20, 5, 2, 10, 20, 10, 2, 35, 20]) freq agegrp = [1] * (20+5+2) + [2] * (10 + 20+10) + [3] * (2 +35 +20) agegrp df2 = pd.Dataframe(zip(agegrp,freq), columns=['agegrp', 'freq']) df2 df_c = pd.crosstab(df2['agegrp'], df2['freq']) df_c df_c.index = ['old', 'mid', 'young'] df_c df_c.columns = ['xiqu', 'gewu', 'qiusai'] df_c df2.keys() a = np.array(pd.crosstab(index = df2['agegrp'], columns = df2['freq'])) a import scipy.stats as stats stats.chi2_contingency(a) import seaborn as sns df2['agegrp'] df2['freq'] df2 fig, ax = plt.subplots() sns.countplot(x = df2['agegrp'], hue = df2['freq']) ax.set_xticklabels(['old', 'mid', 'young']) plt.legend(['xiqu', 'gewu', 'qiusai'])
结果如图



