我try 了许多方法来获得单个的多个多

在将单独的字典列表转换为数据帧时,会创建多个单独的数据帧

以下是单独词典列表data row_data输出的示例:

[{'case_id': 22, 'case_subject': 'followup'}, {'case_id': 22, 'case_subject': 'rma'}, {'case_id': 22, 'case_subject': 'ticket'}, {'case_id': 22, 'case_subject': '61555'}][{'case_id': 26, 'case_subject': 'c'}, {'case_id': 26, 'case_subject': 'ge'},{'case_id':26,'case_subject': 'app'}, {'case_id': 26, 'case_subject': 'logs'},{'case_id':26, 'case_subject': 'request'}][{'case_id': 30, 'case_subject': 'refund'}, {'case_id': 30, 'case_subject': 'request'}, {'case_id': 30, 'case_subject': 'return'},{'case_id': 30, 'case_subject': 'refund'}, {'case_id': 30, 'case_subject': 'pending'}, {'case_id': 30, 'case_subject': 'partial'}, {'case_id': 30, 'case_subject': 'payment'}][{'case_id': 34, 'case_subject': 'unable'}, {'case_id': 34, 'case_subject': 'control'},{'case_id': 34, 'case_subject': 'devices'}, {'case_id': 34, 'case_subject': 'via'}, {'case_id': 34, 'case_subject': 'mfg'}, {'case_id': 34, 'case_subject': 'configured'}, {'case_id': 34, 'case_subject': 'devices'}][{'case_id': 38, 'case_subject': 'trouble'}, {'case_id': 38, 'case_subject': 'connecting'}, {'case_id': 38, 'case_subject': 'alexa'}]

之后我试着用重复的字数转换数据帧,hre是代码

df = pd.DataFrame(rows_data)
    out = df.assign(case_subject =df['case_subject'].str.split())\
            .explode('case_subject').value_counts()\
            .rename('Case_Subject_Split_Count').reset_index()
    print(out)

在那之后,我得到了如下输出:

case_id case_subject  Case_Subject_Split_Count
0       22        61555                         1
1       22     followup                         1
2       22          rma                         1
3       22       ticket                         1
   case_id case_subject  Case_Subject_Split_Count
0       26          app                         1
1       26            c                         1
2       26           ge                         1
3       26         logs                         1
4       26      request                         1
   case_id case_subject  Case_Subject_Split_Count
0       30       refund                         2
1       30      partial                         1
2       30      payment                         1
3       30      pending                         1
4       30      request                         1
5       30       return                         1
   case_id case_subject  Case_Subject_Split_Count
0       34      devices                         2
1       34   configured                         1
2       34      control                         1
3       34          mfg                         1
4       34       unable                         1
5       34          via                         1
   case_id case_subject  Case_Subject_Split_Count
0       38        alexa                         1
1       38   connecting                         1
2       38      trouble                         1

但我需要一个数据帧,而不是像上面那样分开的数据帧

我想要下面这样的输出

case_id case_subject  Case_Subject_Split_Count
     22        61555                         1
     22     followup                         1
     22          rma                         1
     22       ticket                         1
     26          app                         1
     26            c                         1
     26           ge                         1
     26         logs                         1
     26      request                         1
     30       refund                         2
     30      partial                         1
     30      payment                         1
     30      pending                         1
     30      request                         1
     30       return                         1
     34      devices                         2
     34   configured                         1
     34      control                         1
     34          mfg                         1
     34       unable                         1
     34          via                         1
     38        alexa                         1
     38   connecting                         1
     38      trouble                         1

有人能帮我解决这个问题吗?

回答前请仔细阅读问题,谢谢.

推荐答案

编辑:可以用append来变量外循环:

conn.commit() 
data = cur.fetchall() 

output_data = [] 

for row in data: 
    string = str(row[1]) 
    pp2 =''.join(e for e in string if (e.isalnum() or e.isspace())) 
    pp1 = re.sub(' ',' ',pp2).lower() 
    li = list(pp1.split(" "))
    dec_cnt = li 
    zipped = list(zip(li, (row[0] for _ in li))) 
    
    for row1 in zipped: 
        each_row= {"case_id":row1[1],"case_subject":row1[0]} 
        output_data.append(each_row)

out = (pd.DataFrame(output_data)
         .assign(case_subject =lambda x: x['case_subject'].str.split())\
         .explode('case_subject').value_counts()\
         .rename('Case_Subject_Split_Count')
         .reset_index()
         .sort_values(['case_id','Case_Subject_Split_Count'],
                      ascending=[True, False],
                      ignore_index=False))

Python相关问答推荐

如何推迟对没有公钥的视图/表的反射?

使用子字符串动态更新Python DataFrame中的列

Python:根据创建时间合并两个收件箱

重命名变量并使用载体中的字符串存储 Select 该变量

调试回归无法解决我的问题

如何在PIL、Python中对图像应用彩色面膜?

从DataFrame.apply创建DataFrame

计算所有前面行(当前行)中列的值

Pystata:从Python并行运行stata实例

Pytest两个具有无限循环和await命令的Deliverc函数

对整个 pyramid 进行分组与对 pyramid 列子集进行分组

在Python Attrs包中,如何在field_Transformer函数中添加字段?

管道冻结和管道卸载

如何将Docker内部运行的mariadb与主机上Docker外部运行的Python脚本连接起来

将pandas Dataframe转换为3D numpy矩阵

将tdqm与cx.Oracle查询集成

关于Python异步编程的问题和使用await/await def关键字

如何从数据库上传数据到html?

为什么if2/if3会提供两种不同的输出?

在Admin中显示从ManyToMany通过模型的筛选结果