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

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

Pandas:將特定行的字典列表分解為多行

Pandas:將特定行的字典列表分解為多行

蝴蝶刀刀 2024-01-24 15:32:06
正如標(biāo)題所示,我陷入了一種需要將數(shù)據(jù)幀的一行分解為多行的情況。數(shù)據(jù)框的當(dāng)前狀態(tài):import pandas as pdop_d = {'A': [['NULL', 'NULL','NULL','NULL','NULL']],        'V':[[{'2016': '488.386000'},{'2017': '469.508000'},              {'2018': '445.510000'},{'2019': '579.299000'},              {'2020': '493.786000'}]],        'Q':[[{'2016': '488.386000'},{'2017': '469.508000'},              {'2018': '445.510000'},{'2019': '579.299000'},               {'2020': '493.786000'}]],         'Z': [['NULL', 'NULL','NULL','NULL','NULL']]}df = pd.DataFrame(op_d)數(shù)據(jù)框的期望狀態(tài):op_d2 = {'Date':[2016,2017,2018,2019,2020],'A': ['NULL', 'NULL','NULL','NULL','NULL'],        'V':[488.386000,469.508000,445.510000,579.299000,493.786000],        'Q':[488.386000,469.508000,445.510000,579.299000,493.786000],        'Z': ['NULL', 'NULL','NULL','NULL','NULL']}result_df = pd.DataFrame(op_d2)result_df我所做的是將字典的鍵放入單獨(dú)的“日期”列中,并保持列的值不變。無論它是 NULL,它都將保持原樣。所有列都會(huì)有類似的字典。即相同的日期范圍。我收到 json 格式的原始響應(yīng),將其轉(zhuǎn)換為數(shù)據(jù)幀以執(zhí)行一些計(jì)算。我將不勝感激任何幫助。原始 json 響應(yīng):  { 'Prop1': '',   'Prop2': ['Somedata', 'SomeData2'],   'Prop3': 5,   'Prop4': '',   'StartDate': '',   'Function': 'ABC',   'Identifier': 'ID001',   'Col2': 2,   'Prop5': 'XYZ',   'Frequency': '',   'Limit': '',   'Rows': [{'Row': ['136.731000', '2016']},            {'Row': ['135.331000', '2017']},            {'Row': ['163.965000', '2018']},            {'Row': ['153.371000', '2019']},            {'Row': ['161.864000', '2020']}]},}
查看完整描述

1 回答

?
絕地?zé)o雙

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

雖然我無法對(duì)效率做出任何聲明,但也許這可以滿足您的需求。


op_d_new = {k:(v[0] if v[0][0]=='NULL' else \

               [list(j.values())[0] for j in v[0]]) for k,v in op_d.items()}

for v in op_d.values():

    if v[0][0] == 'NULL':

        continue

    dates = [list(j.keys())[0] for j in v[0]]

    break

op_d_new.update({'Dates':dates})


df = pd.DataFrame(op_d_new)

df

      A           V           Q     Z Dates

0  NULL  488.386000  488.386000  NULL  2016

1  NULL  469.508000  469.508000  NULL  2017

2  NULL  445.510000  445.510000  NULL  2018

3  NULL  579.299000  579.299000  NULL  2019

4  NULL  493.786000  493.786000  NULL  2020


查看完整回答
反對(duì) 回復(fù) 2024-01-24
  • 1 回答
  • 0 關(guān)注
  • 143 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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