如何在熊猫中创建子栏目

  • 本文关键字:创建 熊猫 python pandas q
  • 更新时间 :
  • 英文 :


我有一份很长的数据表,里面有很多问题。有许多问题有两个或多个答案,如下所示:[![表格中的问题格式][1]][1]

Q:1 is there electricity in your home    Q:2 What are the electric appliances in your home
yes                                         tv
yes                                         fridge
no                                          laptop
no                                          computer
yes                                          tv
yes                                          laptop

我希望输出结果如下:[![答案][2]][2]

Q:1 is there electricity in your home    Q:2 What are the electric appliances in your home
total    yes    no                        total    tv    fridge    laptop    computer
6        4       2                        6         2       1        2        1  

我想要一个额外的";合计";和一个";"是"或"否"或"TV"的总和;如上图所示。谢谢大家的帮助。

编辑:第一列是一个问题(Q1和Q2(。以下几行是调查中不同人群的回答。这是一个供你理解的样本。

这是一种可能的方法。您可以迭代每一列,计算该列中每个值的频率,并创建一个新的多索引数据帧:

new_df = list()
for column in df:
column_count = df[column].value_counts().to_frame().stack()
column_count.loc[("total", column)] = column_count.sum()
new_df.append(column_count)

现在,让我们创建一个包含所有这些计数的数据帧(每列一个(,并透视表以格式化输出:

new_df = pd.concat(new_df).reset_index()
new_df = new_df.pivot_table(index=["level_1", "level_0"], values=0).T

这是带有示例输入的代码的输出:

# Sample input
Q1      Q2
0  yes      tv
1  yes  fridge
2   no  laptop
3   no      tv
# Sample output
level_1 Q1               Q2                
level_0 no total yes fridge laptop total tv
0        2     4   2      1      1     4  2

相关内容

  • 没有找到相关文章

最新更新