CSSCI下载的题录txt数据如何转化成Excel?

CSSCI下载的题录数据如下: 

每条文献数据之间有“——”分隔。

 

如何批量的转化成以下格式? 

求赐教 谢谢!

用Python可以实现批量处理,假设有这样一个txt文件。

【来源篇名】大学图书馆1
【英文篇名】Discussion on the1
【来源作者】陈建龙1
【基金】
【参考文献】
1.张国有
2.李大钊
--------------------------------------------

【来源篇名】大学图书馆2
【英文篇名】Discussion on the2
【来源作者】陈建龙2
【基金】
【参考文献】
1.张国有
2.李大钊
3.张国有
4.李大钊
--------------------------------------------

【来源篇名】大学图书馆3
【英文篇名】Discussion on the3
【来源作者】陈建龙3
【基金】
【参考文献】
1.张国有
2.李大钊
3.李大钊
--------------------------------------------

【来源篇名】大学图书馆4
【英文篇名】Discussion on the4
【来源作者】陈建龙4
【基金】
【参考文献】
1.李大钊
--------------------------------------------

代码可以这样写:

#首先将txt文件的最后加上一行跟上面的虚线,代表结束标记

#读取txt文件的内容
import pandas as pd

data=pd.read_csv('data/题录数据.txt',header=None,names=['data'])
data.head(10)

#获取名称
names=[]

for i in range(5):
    names.append(re.findall('(【.*?】).*?',data['data'][i])[0])

print(names)

#获取参考文献及虚线对应的index
arr1=data[data['data']=='【参考文献】'].index.values
arr2=data[data['data']=='--------------------------------------------'].index.values

data_df=pd.DataFrame(columns=names)

#获取个字段的值,除了参考文献
for j in range(len(arr1)-1):
    values=[]
    for i in range(arr2[j]+1,arr1[j+1]+1):
        values.append('/'.join(re.findall('】(.*)',data['data'][i])))
        
    data1=pd.DataFrame(values).T
    data1.columns=names
    data_df=pd.concat([data_df,data1],axis=0)

#获取参考文献,并填入数据框
for j in range(len(arr1)-1):
    ref=[]
    for i in range(arr1[j]+1,arr2[j]):
        ref.append(data['data'][i])
    #print('|'.join(ref))
    data_df.iloc[j,4]='|'.join(ref)

#保存到Excel文件中
data_df.to_excel('data/data_df.xlsx',index=None)

csdn的服务器貌似有点问题,图片发不上来。

这个代码结合你的文件再修改下,就OK了。

 

是用Excel来操作吗?Excel可以实现,Python也可以。参考文献怎么排列,多行还是多列?

把txt中内容复制到Excel中,目前处于一列。

第一步:将】符号全部替换成】、(Excel中的查找替换),后面这个顿号表示分列的标志。

第二步:选中这一列,菜单:数据-分列-分隔符号-其他:输入、,下一步,完成,即可完成分列。

到此为止,将这一列分成了两列,第一列是【xxx】,第二列是对应的内容。

第三步:选中这两列内容(除了参考文献下方的内容),复制,在新的表格中,转置粘贴成行。

第四步:将参考文献内容复制粘贴到【参考文献】的下方。

大概就是这样操作。

 

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632