亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

如何從具有唯一鍵和值的字典中創建數據框作為列表?

如何從具有唯一鍵和值的字典中創建數據框作為列表?

qq_遁去的一_1 2022-06-02 16:01:59
我目前正在使用 Tweepy 從 Twitter API 中抓取一些用戶//關注者信息。我目前將數據存儲為字典,其中每個鍵都是唯一的 twitter 用戶,值是其關注者的 ID 列表。數據如下所示:{'realDonaldTrump': [    123456,    123457,    123458,    ...    ], 'BarackObama' : [    999990,    999991,    999992,    ...    ]}我需要的是一個看起來像這樣的數據框:user             followerrealDonaldTrump  123456realDonaldTrump  123457realDonaldTrump  123458...              ...BarackObama      999990BarackObama      999991BarackObama      999992...              ...我已經嘗試過:df = pd.DataFrame.from_dict(followers)但它為每個鍵提供了一個新列,并且不處理不均勻長度的關注者列表。有沒有一種聰明的方法可以將我擁有的字典結構轉換為數據框?或者我應該以不同的方式存儲初始數據?我目前正在使用 Tweepy 從 Twitter API 中抓取一些用戶//關注者信息。我目前將數據存儲為字典,其中每個鍵都是唯一的 twitter 用戶,值是其關注者的 ID 列表。數據如下所示:{'realDonaldTrump': [    123456,    123457,    123458,    ...    ], 'BarackObama' : [    999990,    999991,    999992,    ...    ]}我需要的是一個看起來像這樣的數據框:user             followerrealDonaldTrump  123456realDonaldTrump  123457realDonaldTrump  123458...              ...BarackObama      999990BarackObama      999991BarackObama      999992...              ...我已經嘗試過:df = pd.DataFrame.from_dict(followers)但它為每個鍵提供了一個新列,并且不處理不均勻長度的關注者列表。有沒有一種聰明的方法可以將我擁有的字典結構轉換為數據框?或者我應該以不同的方式存儲初始數據?
查看完整描述

3 回答

?
慕無忌1623718

TA貢獻1744條經驗 獲得超4個贊

對元組使用列表推導并傳遞給 DataFrame 構造函數:


followers = {'realDonaldTrump': [

    123456,

    123457

    ],

 'BarackObama' : [

    999990,

    999991,

    999992

    ]}


df = pd.DataFrame([(k, x) for k, v in followers.items() for x in v], 

                   columns=['user','follower'])

print (df)

              user  follower

0  realDonaldTrump    123456

1  realDonaldTrump    123457

2      BarackObama    999990

3      BarackObama    999991

4      BarackObama    999992


查看完整回答
反對 回復 2022-06-02
?
交互式愛情

TA貢獻1712條經驗 獲得超3個贊

創建一個兼容的字典:


final_dict = {'users':[], 'followers':[]}

for key in followers:

  for i in range(len(followers[key])):

    final_dict['users'].append(key)

    final_dict['followers'].append(followers[key][i])


df = pd.DataFrame.from_dict(final_dict)

輸出:


    users           followers

0   realDonaldTrump 123456

1   realDonaldTrump 123457

2   realDonaldTrump 123458

3   BarackObama     999990

4   BarackObama     999991

5   BarackObama     999992


查看完整回答
反對 回復 2022-06-02
?
守著星空守著你

TA貢獻1799條經驗 獲得超8個贊

import pandas as pd


followers = {

    'realDonaldTrump': [123456, 123457, 123458],

    'BarackObama': [999990, 999991, 999992]

}


df = pd.DataFrame()


i = 0

for user in followers:

    for r in followers[user]:

        df.loc[i, 'user'] = user

        df.loc[i, 'record'] = r

        i = i + 1


print(df)

結果:


             user    record

0  realDonaldTrump  123456

1  realDonaldTrump  123457

2  realDonaldTrump  123458

3      BarackObama  999990

4      BarackObama  999991

5      BarackObama  999992


查看完整回答
反對 回復 2022-06-02
  • 3 回答
  • 0 關注
  • 122 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號