[英]Python: Create a new variable derived from extracting a sentence from a text
[英]Optimize extracting list from dataframe to create new variable in Python
我對 Python 非常陌生。 我有一個巨大的數據框,其中包含兩個列表格式的變量。 它的尺寸為 1416631 x 2。
我試圖提取列表的第一個元素來創建另一個變量。 然而,目前的代碼已經運行了一個多小時無濟於事。
這是帶有兩個變量col
和PMID
(當前為空)的數據幀MH
的片段:
col PMID
[1, Aged, Adult, Child]
[53, Humans, Kidney Injury]
[22, Diagnostic Imaging, Aged]
這就是我想要的樣子(2 個變量: PMID
和col
):
col PMID
[Aged, Adult, Child] 1
[Humans, Kidney Injury] 53
[Diagnostic Imaging, Aged] 22
這是我的代碼:
# extract PMID
for index, row in MH.iterrows():
MH["PMID"][index] = MH["col"][index][0]
此代碼適用於較小的數據幀,但不會停止在較大的數據幀上運行。
請指教。 謝謝
這是一種方法:
import pandas as pd
df = pd.DataFrame({'col': [[1, 'Aged', 'Adult', 'Child'],
[53, 'Humans', 'Kidney Injury'],
[22, 'Diagnostic Imaging', 'Aged']]})
df['PMID'], df['col'] = list(zip(*df['col'].apply(lambda x: (x[:1][0], x[1:])).values))
# col PMID
# 0 [Aged, Adult, Child] 1
# 1 [Humans, Kidney Injury] 53
# 2 [Diagnostic Imaging, Aged] 22
解釋
pd.Series.apply
允許您應用任何函數,包括系列上的匿名lambda
函數。(x[:1][0], x[1:])
將您的列表列拆分為您指定的格式。zip(*x.values)
將元組數組解包為 2 列的數組,這些列被分配給“PMID”和“col”列。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.