第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

需要幫助解析復(fù)雜的文本文件

需要幫助解析復(fù)雜的文本文件

大話西游666 2023-07-18 10:09:53
我有一個(gè)文本文件,其結(jié)構(gòu)如下所示,我想使用 python 提取數(shù)據(jù)框中的數(shù)據(jù)。數(shù)據(jù)框應(yīng)具有 PMID 以及針對(duì)每個(gè) PMID 的作者顯示的所有文本。數(shù)據(jù)格式PMID- 唯一的 8 位數(shù)字xyz - 文本(可能是多行)xyz- 文本(可能是多行)作者- 文本(可能是多行)作者- 文本(可能是多行)PMID- 唯一的 8 位數(shù)字xyz - 文本(可能是多行)xyz- 文本(可能是多行)作者- 文本(可能是多行)作者- 文本(可能是多行)我在 python 中嘗試過(guò)的代碼如下 - 我能夠提取所有 PMID,但我無(wú)法找出針對(duì)每個(gè) PMID 附加所有作者文本的邏輯。for lines in open('pubmed-cancerbiol.txt','r'):    if(lines[0:4] == 'PMID'):        print(lines)
查看完整描述

1 回答

?
富國(guó)滬深

TA貢獻(xiàn)1790條經(jīng)驗(yàn) 獲得超9個(gè)贊

PMID您可以使用as 鍵和AUTHORs 作為值來(lái)收集字典中的數(shù)據(jù)。


假設(shè)您從文件開(kāi)始


from io import StringIO

fo = StringIO(

'''PMID- 12345678

xyz - text (might be multiple lines)

xyz- text (might be multiple lines)

AUTHOR- author1

AUTHOR- author2


PMID- 12345679

xyz - text (might be multiple lines)

xyz- text (might be multiple lines)

AUTHOR- author3

AUTHOR- author4''')

    

# with open(filename, 'r') as fo:

然后迭代行并填充字典


records = dict()

pmid = None

for line in fo.readlines():

    if line.startswith('PMID-'):

        pmid = line.split('-')[-1].strip()

        records[pmid] = []

    elif line.startswith('AUTHOR'):

        records[pmid].append(line.split('-')[-1].strip())

創(chuàng)建數(shù)據(jù)框時(shí),您可以將df = pd.DataFrame(records)每個(gè)作者放在一列中或在傳遞給數(shù)據(jù)框構(gòu)造函數(shù)之前加入列表


df = pd.DataFrame(

    [', '.join(r) for r in records.values()],

    index=records.keys()

)

輸出


                         0

12345678  author1, author2

12345679  author3, author4


查看完整回答
反對(duì) 回復(fù) 2023-07-18
  • 1 回答
  • 0 關(guān)注
  • 121 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)