lanmor_699 2022-06-21 01:15 采纳率: 78.9%
浏览 47
已结题

将遍历出来的列表变成DataFrame

问题遇到的现象和发生背景

想要将detail中的内容,变成DataFrame存入excel

问题相关代码,请勿粘贴截图

import re
detail = '木香750克,排草500克,桂枝400克,母丁香750克,红扣500克 枳壳500克,青果500克,烟桂500克,山楂400克、毛桃400克,干八角500克。'
#将上面的字符串中的多余字符去掉
test = re.findall('\w+',detail)
#将上面的字符串数字取出来
num = re.findall('\d+',detail)
print(num)
print(test)
for i in range(len(test)):
#test中的数字去掉,留下名字和单位
test[i] = re.sub('\d',' ',test[i])
#将名字和单位分开
test2 = re.split('\s', test[i])
#删除多余空格
while '' in test2:
test2.remove('')
print(test2)

运行结果及报错内容

['750', '500', '400', '750', '500', '500', '500', '500', '400', '400', '500']
['木香750克', '排草500克', '桂枝400克', '母丁香750克', '红扣500克', '枳壳500克', '青果500克', '烟桂500克', '山楂400克', '毛桃400克', '干八角500克']
['木香', '克']
['排草', '克']
['桂枝', '克']
['母丁香', '克']
['红扣', '克']
['枳壳', '克']
['青果', '克']
['烟桂', '克']
['山楂', '克']
['毛桃', '克']
['干八角', '克']

我的解答思路和尝试过的方法

希望将:
['木香', '克']
['排草', '克']
['桂枝', '克']
['母丁香', '克']
['红扣', '克']
['枳壳', '克']
['青果', '克']
['烟桂', '克']
['山楂', '克']
['毛桃', '克']
['干八角', '克']

['750', '500', '400', '750', '500', '500', '500', '500', '400', '400', '500']
变成DataFrame 存入excel

我想要达到的结果

希望将:
['木香', '克']
['排草', '克']
['桂枝', '克']
['母丁香', '克']
['红扣', '克']
['枳壳', '克']
['青果', '克']
['烟桂', '克']
['山楂', '克']
['毛桃', '克']
['干八角', '克']

['750', '500', '400', '750', '500', '500', '500', '500', '400', '400', '500']
变成DataFrame 存入excel

  • 写回答

1条回答 默认 最新

  • 天际的海浪 2022-06-21 01:48
    关注

    你题目的解答代码如下:

    import pandas as pd
    import re
    
    detail = '木香750克,排草500克,桂枝400克,母丁香750克,红扣500克 枳壳500克,青果500克,烟桂500克,山楂400克、毛桃400克,干八角500克。'
    
    test = re.findall('([\u4e00-\u9fa5A-Za-z]+)(\d+)(克)',detail)
    print(test)
    name = [x[0] for x in test]
    num = [int(x[1]) for x in test]
    print(name)
    print(num)
    
    data = {
        "名称":name,
        "重量(克)":num
    }
    df = pd.DataFrame(data)
    print(df)
    df.to_excel(r'xxxx.xlsx',index=None)
    

    如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月21日
  • 已采纳回答 6月21日
  • 创建了问题 6月21日