caoxunfengnuan 2021-08-29 00:16 采纳率: 100%
浏览 84
已结题

如何从txt文档中提取特定的信息并保存到Excel中

因为科研工作需要现在有类似下图的数据100多个,保存为txt格式,其中XY1234代表一个样品数据ID,不同数据之间用空行隔开,我想提取每个数据的样品号(即ID),样品描述(Northern Hemisphere terrestrial sample), Radiocarbon Age,Calibration data set,以及Two Sigma Ranges后面的数据,并且保存在excel文档中。我仿照论坛上的一个代码修改如下,但是并不能实现我的目标。本人python刚入门,希望有朋友可以详细地解答一下。感激不尽!
img

import pandas as pd

url = r'C:\Users\chenh\PycharmProjects\pythonProject2\c14res.txt' 

with open(url, 'r',encoding='utf8') as f:    #打开txt文本
    datas = f.read()      
    li = []                  #创建一个数组
    k = 0
    data = datas.split('\n')     #使用空行进行划分
    for item in datas.split('\n'):
        if len(item) == 6:
            li.append(k)
    k = k + 1           # 用来将txt文件分块
    j = 0
    mydata = pd.DataFrame()
    for i in range(len(li)):
        j += 1               # j=j+1
        if i == len(li) - 1:
            chunk = data[li[i]:]
        else:
            chunk = data[li[i]:li[i + 1]]
            print(len(chunk))
        IDs = []  # IDs
        Sample = []  # Sample description
        Age = []  # Radiocarbon Age
        Curve = []  # Calibration data set
        CalAge = []Two Sigma Ranges
       
  for m in range(0, len(chunk)):
          IDs.append(chunk[m].split(',')[0])
          Sample.append(chunk[m].split(',')[1])
          Age.append(chunk[m].split(',')[2])
          CalAge1.append(chunk[m].split(',')[10])
          CalAge2.append(chunk[m].split(',')[11])
          pd_data = pd.DataFrame({
            'IDs': IDs,
            'Sample': Sample,
            'Age': Age,
            'CalAge1': CalAge1,
            ' CalAge2':  CalAge2,
            })
mydata = pd.concat((mydata, pd_data))
    mydata.to_excel('mydata.xlsx', index=None)
  • 写回答

1条回答 默认 最新

  • wo.austin 2021-08-29 09:23
    关注

    你好,我真的是想表达一句,如果条件允许,尽量的采用付费咨询,时间充足可以是付费专栏,或者购买一些课件去学习。这样比你直接打代码让别人给你看问题效率高,何况你这是科研工作相关,门槛相对就高一些。至少有悬赏都比没有的答案平均质量要高。

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

报告相同问题?

问题事件

  • 系统已结题 9月6日
  • 已采纳回答 8月29日
  • 创建了问题 8月29日

悬赏问题

  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化