weixin_46240543 2022-03-18 16:05 采纳率: 60%
浏览 153
已结题

使用python 实现对CSV文件数据的处理

原始数据组为下图,每一行都有一些数据,且每一行的数据长度不相同,分别以逗号和空格分割。

img

想批量转化为第二张图片当中的数据形式。

img

谢谢各位

  • 写回答

2条回答 默认 最新

  • heianduck 2022-03-18 16:39
    关注
    import pandas as pd
    import re
    df = pd.DataFrame({'Category':['C,D','A,B,C','A,D','C','A,D','A,B,C','A,B,C','D']})
    
    def st(stri,colN):
        col = "columns"+str(colN)
        lis = re.split('[ ,]',stri)
        data = pd.DataFrame({col:lis})
        return data
    
    data2 = pd.DataFrame()
    for ind, row in df.iterrows():
        data2 = pd.concat([data2,st(row['Category'],str(ind+1))],axis=1)
    data2
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    1人已打赏
  • DarkAthena ORACLE应用及数据库设计方案咨询师 2022-03-18 18:38
    关注

    我先用文字解析一下哈,看看是不是这个意思
    原始数据有多行,需要对每一行进行处理,处理规则为:

    识别逗号为新数据每行的分隔符,识别空格为每个字段的分隔符

    因此原数据一定满足下面这样的格式

    字段1 字段2 字段3,字段1 字段2 字段3,字段1 字段2 字段3...

    那么这其实就是按每行循环,按逗号切割成列表 后再循环 按空格切割生成一行新数据

    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月27日
  • 已采纳回答 3月19日
  • 创建了问题 3月18日

悬赏问题

  • ¥15 MYSQL 订单的商品明细重复计算问题
  • ¥15 微信实时共享位置修改
  • ¥100 TG的session协议号转成直登号号后客户端登录几分钟后自动退出设备
  • ¥30 共模反馈回路的小信号增益
  • ¥15 arduino ssd1306函数与tone函数放歌代码不兼容问题
  • ¥70 0.96版本hbase的row_key里含有双引号,无法deleteall
  • ¥15 诊断性META分析合并效能的检验
  • ¥15 请问abb根据色块判断奇偶数并根据批次号放入仓储
  • ¥66 开发PC客户端一定也要开发上位机吗?
  • ¥20 Java eclipse连接数据库