Python 3.x 在Python 3中汇总要计数的数据帧字符串值

Python 3.x 在Python 3中汇总要计数的数据帧字符串值,python-3.x,pandas,dataframe,summarize,Python 3.x,Pandas,Dataframe,Summarize,在下面的屏幕截图中,您将发现一个数据框,其中每个单元格中都包含字符串值。我想做的是在这个数据框架的基础上创建一个新的数据框架,它包含3列:“非常感兴趣”、“有点感兴趣”和“不感兴趣”。我不知道如何将原来的df转换成这个新的df,我试着只计算满足“非常感兴趣”条件的值,然后将它们放入新的df中,但这些数字似乎不正确 我将非常感谢您的帮助。多谢各位 编辑:下面是复制与屏幕截图中数据帧相似的数据帧的代码: df = pd.DataFrame({1: ['Very interested', 'Not

在下面的屏幕截图中,您将发现一个数据框,其中每个单元格中都包含字符串值。我想做的是在这个数据框架的基础上创建一个新的数据框架,它包含3列:“非常感兴趣”、“有点感兴趣”和“不感兴趣”。我不知道如何将原来的df转换成这个新的df,我试着只计算满足“非常感兴趣”条件的值,然后将它们放入新的df中,但这些数字似乎不正确

我将非常感谢您的帮助。多谢各位

编辑:下面是复制与屏幕截图中数据帧相似的数据帧的代码:

df = pd.DataFrame({1: ['Very interested', 'Not interested', 'Somewhat interested', 'Very interested', 'Not interested', 'Somewhat interested'], 2: ['Very interested', 'Not interested', 'Somewhat interested', 'Very interested', 'Not interested', 'Somewhat interested'], 3: ['Very interested', 'Not interested', 'Somewhat interested', 'Very interested', 'Not interested', 'Somewhat interested'], 4: ['Very interested', 'Not interested', 'Somewhat interested', 'Very interested', 'Not interested', 'Somewhat interested'], 5: ['Very interested', 'Not interested', 'Somewhat interested', 'Very interested', 'Not interested', 'Somewhat interested'], 6: ['Very interested', 'Not interested', 'Somewhat interested', 'Very interested', 'Not interested', 'Somewhat interested']}, 
                 index=['Big Data','Data Analysis','Data Journalism', 'Data Visualization', 'Deep Learning', 'Machine Learning'])
根据所需的输出,它应该是这样的:

我认为需要通过重塑,然后通过以下方式获得计数:

另一个解决方案,使用,按计数,使用:


你能在你的文章中包括你期望的输出数据框吗?请仔细阅读。您的代码没有可用的输入(因为您粘贴了一幅图像),没有预期的输出,也没有显示任何研究成果。@rahlf23抱歉,我刚刚编辑了问题并添加了您想要的内容hi@jezrael非常感谢!!这正是我要找的。我很高兴看到有人理解了我的问题:)@Miguel2488-你的问题有问题,不可能复制数据,你可以通过添加
df=pd.DataFrame({1:['vi',ni',ni',ni',2:['vi',ni',vi',vi',3:['vi',si',si',4:['si',vi',vi',vi']}索引)来改进你的问题=['dv'、'ml'、'das'])
-可以自由修改它;)好的,我正在编辑它
df = (df.rename_axis('val')
        .reset_index()
        .melt('val', var_name='a', value_name='b')
        .groupby(['val','b'])
        .size()
        .unstack(fill_value=0))
df = (df.stack()
        .groupby(level=0)
        .value_counts()
        .unstack(fill_value=0))