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

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

從數(shù)據(jù)框中包含的列表中將列動(dòng)態(tài)添加到 pandas 數(shù)據(jù)框

從數(shù)據(jù)框中包含的列表中將列動(dòng)態(tài)添加到 pandas 數(shù)據(jù)框

人到中年有點(diǎn)甜 2022-07-26 16:35:28
我有一個(gè)數(shù)據(jù)框,其中第一列包含一個(gè)隨機(jī)大小的列表,每個(gè)列表中從 0 到大約 10 個(gè)項(xiàng)目。此數(shù)據(jù)框還包含其他幾列數(shù)據(jù)。我想插入與最長(zhǎng)列表的長(zhǎng)度一樣多的列,然后按順序填充值,以便每一列在第一列的列表中都有一個(gè)項(xiàng)目。我不確定解決這個(gè)問題的好方法。sample = [[[0,2,3,7,8,9],2,3,4,5],[[1,2],2,3,4,5],[[1,3,4,5,6,7,8,9,0],2,3,4,5]]headers = ["col1","col2","col3","col4","col5"]df = pd.DataFrame(sample, columns = headers)在此示例中,我想在第 1 列之后添加 9 列,因?yàn)檫@是數(shù)據(jù)幀第三行中列表的最大長(zhǎng)度。這些列將填充: 0 2  3    7    8     9  NULL NULL NULL in the first row, 1 2 NULL NULL NULL NULL NULL NULL NULL in the second, etc... 
查看完整描述

2 回答

?
12345678_0001

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

編輯以適應(yīng) OP 編輯

我就是這樣做的。首先,我將填充原始列的列表,使它們的長(zhǎng)度都相同,并且更容易使用它們。之后就是創(chuàng)建列并用與列表中的位置對(duì)應(yīng)的值填充它。假設(shè)我們的列表最大為 4 以作為一個(gè)更簡(jiǎn)單的示例:


df = pd.DataFrame(sample, columns = headers)

df = df.rename(columns={'col1':'col_of_lists'})

max_length = max(df['col_of_lists'].apply(lambda x:len(x)))

df['col_of_lists'] = df['col_of_lists'].apply(lambda x:x + ([np.nan] * (max_length - len(x))))

for i in range(max_length):

    df['col_'+str(i)] = df['col_of_lists'].apply(lambda x: x[i])


查看完整回答
反對(duì) 回復(fù) 2022-07-26
?
白豬掌柜的

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

將一系列列表轉(zhuǎn)換為單獨(dú)列的最簡(jiǎn)單方法是apply將它們轉(zhuǎn)換為系列,這會(huì)觸發(fā)'expand'結(jié)果類型:


result = df['col1'].apply(pd.Series)

此時(shí),我們可以將自動(dòng)編號(hào)的列調(diào)整為包含原始名稱'col1',例如:


result.columns = [

    'col1_{}'.format(i + 1)

    for i in result.columns]

最后,我們可以將它加入到原來的 DataFrame 中。使用這是第一列這一事實(shí)很容易,只需將其連接到原始框架的左側(cè),'col1'在此過程中刪除原始:


result = result.join(df.drop('col1', axis=1))

rename()您甚至可以通過使用更改列名的方法將其全部作為單行來完成:


df['col1'].apply(pd.Series).rename(

    lambda i: 'col1_{}'.format(i + 1),

    axis=1,

).join(df.drop('col1', axis=1))


查看完整回答
反對(duì) 回復(fù) 2022-07-26
  • 2 回答
  • 0 關(guān)注
  • 108 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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