![](/img/trans.png)
[英]How to make multiindex dataframe from a nested dictionary keys and lists of values?
[英]How to make a dataframe from a dictionary with unique keys and values as lists?
我目前正在使用 Tweepy 從 Twitter API 中抓取一些用戶//關注者信息。 我目前將數據存儲為字典,其中每個鍵都是唯一的 twitter 用戶,值是其關注者的 ID 列表。
數據如下所示:
{'realDonaldTrump': [
123456,
123457,
123458,
...
],
'BarackObama' : [
999990,
999991,
999992,
...
]}
我需要的是一個看起來像這樣的 dataframe:
user follower
realDonaldTrump 123456
realDonaldTrump 123457
realDonaldTrump 123458
... ...
BarackObama 999990
BarackObama 999991
BarackObama 999992
... ...
我已經嘗試過:
df = pd.DataFrame.from_dict(followers)
但它為每個鍵提供了一個新列,並且不處理不均勻長度的關注者列表。
有沒有一種聰明的方法可以將我擁有的字典結構轉換為 dataframe? 或者我應該以不同的方式存儲初始數據?
對元組使用列表推導並傳遞給 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
創建一個兼容的字典:
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)
Output:
users followers
0 realDonaldTrump 123456
1 realDonaldTrump 123457
2 realDonaldTrump 123458
3 BarackObama 999990
4 BarackObama 999991
5 BarackObama 999992
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.