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