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

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

將一系列 dict 和 concat 轉(zhuǎn)換為數(shù)據(jù)幀

將一系列 dict 和 concat 轉(zhuǎn)換為數(shù)據(jù)幀

蕪湖不蕪 2022-06-22 18:08:01
我的數(shù)據(jù)框                             Items  Count  ScannedCount  0  {'comp': {'S': '2019-08-02'}...   1032          1032 1  {'comp': {'S': '2019-08-27'}...   1032          1032  項(xiàng)目系列看起來像這樣{'comp': {'S': '2019-08-02T16:54:55.035196+03:00'}, 'ID': {'S': '336'}, 'dID': {'S': '1763523'}, 'fname': {'S': '558012'}}使用這篇文章的第二個(gè)答案允許我將系列轉(zhuǎn)換為數(shù)據(jù)框。問題是如何擴(kuò)展該操作,因?yàn)樗l(fā)生在每一行,目前的做法:循環(huán)遍歷每一行并將它們連接成一個(gè)系列(非常慢)item_df = pd.DataFrame(df['Items'].iloc[i]) for i in range(df.shape[0])]).reset_index(drop=True), df], axis=1)將結(jié)果與原始數(shù)據(jù)框連接起來df = pd.concat([temp, df], axis=1)我相信for第一部分的循環(huán)是瓶頸。有沒有更快的方法將系列轉(zhuǎn)換為數(shù)據(jù)幀并將其連接回原始數(shù)據(jù)幀。預(yù)期輸出:                 comp   ID  dID      fname   Count  ScannedCount  0  2019-08-02T16:54:55  336 1763523  548012  1032   10321  2019-09-01T14:52:24  336 1763523  528012  1032   1032
查看完整描述

3 回答

?
呼如林

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

試試這個(gè)更柱狀的解決方案。它假設(shè)字典中總是有“S”鍵。


df_tmp = df['Items'].apply(pd.Series)

for c in df_tmp.columns:

    df[c] = df_tmp[c].apply(lambda x: x.get('S'))

df = df.drop(columns='Items')


查看完整回答
反對 回復(fù) 2022-06-22
?
眼眸繁星

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

看起來迭代所有 df 是不可避免的。我不確定它是否更好,但我知道 pandas 這樣做的方式是使用iterrows().

在文檔中,他們還提到itertuples()了特定用例,但同樣,我在這里不是專家。

希望這可以幫助!


查看完整回答
反對 回復(fù) 2022-06-22
?
飲歌長嘯

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

測試數(shù)據(jù):


import pandas as pd

test_data = {'item' : [{'comp': {'S': '2019-08-02T16:54:55.035196+03:00'}, 'ID': {'S': '336'}, 'dID': {'S': '1763523'}, 'fname': {'S': '558012'}}, {'comp': {'S': '2019-09-02T16:54:55.035196+03:00'}, 'ID': {'S': '336'}, 'dID': {'S': '1763523'}, 'fname': {'S': '558012'}}], 'Count': [1032,1032], 'ScannedCount':[1032,1032]}


df = pd.DataFrame.from_dict(test_data)


Out[64]:  

                                                    item  Count  ScannedCount

    0  {'comp': {'S': '2019-08-02T16:54:55.035196+03:...   1032          1032

    1  {'comp': {'S': '2019-09-02T16:54:55.035196+03:...   1032          1032

據(jù)我了解,你試圖得到這樣的東西:


def extract(row):


    item_series = pd.Series({k:v for k,v in row['item'].items()})

    result = row.append(item_series)


    return result


df = df.apply(extract, axis = 1)

這給了你:


Out[67]: 

                                            comp            ID               dID  \

    0  {'S': '2019-08-02T16:54:55.035196+03:00'}  {'S': '336'}  {'S': '1763523'}   

    1  {'S': '2019-09-02T16:54:55.035196+03:00'}  {'S': '336'}  {'S': '1763523'}   


             fname  

    0  {'S': '558012'}  

    1  {'S': '558012'}  


## skipped some columns for clarity


查看完整回答
反對 回復(fù) 2022-06-22
  • 3 回答
  • 0 關(guān)注
  • 107 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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