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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將 Dataframe 轉(zhuǎn)換為具有某些條件的列表

將 Dataframe 轉(zhuǎn)換為具有某些條件的列表

喵喵時光機 2023-10-11 15:58:20
我有兩個 DataFrame,df 和 df2,如下圖所示。我想將 df 轉(zhuǎn)換為如下列表。df2 告訴 df 轉(zhuǎn)換為列表時要包含哪些列。怎樣才能達到目的呢?非常感謝。desired_output = [{'A': {'value': '10'}, 'B': {'value': '11'}}, {'B': {'value': '14'}, 'C': {'value': '15'}}, {'A': {'value': '16'}, 'B': {'value': '17'}, 'C': {'value': '18'}}]
查看完整描述

1 回答

?
喵喔喔

TA貢獻1735條經(jīng)驗 獲得超5個贊

輸入 - 定義數(shù)據(jù)幀


import pandas as pd

df1 = pd.DataFrame({'A': [10,13,16], 'B': [11,14,17], 'C':[12,15,18]} )

df1.index = ['a_0','a_1','a_2']

df2 = pd.DataFrame({'start_column': [0,1,0], 'end_column': [1,2,2]} )

df2.index = ['a_0','a_1','a_2']

數(shù)據(jù)框輸入:


      A   B   C

a_0  10  11  12

a_1  13  14  15

a_2  16  17  18

     start_column  end_column

a_0             0           1

a_1             1           2

a_2             0           2

解決方案:


def listofdict(j):

    d2 = {}

    x = j['start_column']

    y = j['end_column']+1

    for i in range(x,y):

        d1 = {}

        d1['value'] = str(df1.loc[j.name][i])

        d2[df1.columns[i]] = d1

    l.append(d2)

    return l


l = []

df2.apply(lambda j:listofdict(j), axis=1).all()

print(l)

期望的輸出:


[{'A': {'value': '10'}, 'B': {'value': '11'}}, {'B': {'value': '14'}, 'C': {'value': '15'}}, {'A': {'value': '16'}, 'B': {'value': '17'}, 'C': {'value': '18'}}]



查看完整回答
反對 回復(fù) 2023-10-11
  • 1 回答
  • 0 關(guān)注
  • 117 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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