我正在尋找在此資料框中“加入”之后的數字字串。我的資料框如下所示:
targets_list = pd.DataFrame(targets_df[['target_components', 'target_chembl_id']])
并且每列中的元素target_components如下所示:
[{'accession': 'O43451', 'component_description': 'Maltase-glucoamylase, intestinal', 'component_id': 434, 'component_type': 'PROTEIN', 'relationship': 'SINGLE PROTEIN', 'target_component_synonyms',...}]
我只想在“加入”之后提取數字代碼。因為我認為它是串列的第一個元素,所以我嘗試了tgt = targets_list['target_components'][0][0],但這會回傳該串列的第一個元素,而不是入藏號。
我可以看到它是每一行中的一個串列,但是如何決議該串列并獲取該數字并將其添加到一列是我所缺少的。使用正則運算式應該是可能的嗎?但我不確定 Regex 是如何作業的。
uj5u.com熱心網友回復:
您可以使用 .findall() 函式或 .extract() 來獲取 id。
參考: 使用正則運算式從 pandas 資料框中提取元素
uj5u.com熱心網友回復:
首先,無需pd.DataFrame再次使用從現有列創建資料框:
targets_list = targets_df[['target_components', 'target_chembl_id']]
然后你可以使用apply來訪問列元素
tgt = targets_list['target_components'].apply(lambda x: x[0]['accession'])
uj5u.com熱心網友回復:
你可以試試這個:
targets_list['target_components'].map(lambda x: x[0].get("accession"] if x else '')
uj5u.com熱心網友回復:
你可以試試:
tgt = targets_list["target_components"].str[0].str["accession"]
結果為
targets_list = pd.DataFrame(
{"target_components": [
[{"accession": "O43451", "b": "c", "d": 1}],
[{"accession": "012345", "b": "e", "d": 2}],
[{"b": "f", "d": 3}],
[]]}
)
target_components
0 [{'accession': 'O43451', 'b': 'c', 'd': 1}]
1 [{'accession': '012345', 'b': 'e', 'd': 2}]
2 [{'b': 'f', 'd': 3}]
3 []
是
0 O43451
1 012345
2 None
3 NaN
Name: target_components, dtype: object
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/469032.html
下一篇:轉賣商品
