我想有選擇地將字典串列的字典轉換為資料框。如果出版商名稱是 Benzinga,我只想從結果中獲取出版商和標題:
{'results': [{'id': 'knNyIzsECbl3YYPAKIQsEoaO4_roXDftV-auy9lSB-w',
'publisher': {'name': 'Benzinga',
'homepage_url': 'https://www.benzinga.com/'},
'title': 'Earnings Scheduled For May 11, 2021'},
{'id': 'KNDx8p0PytFULh33UWse-BkT7XxpxLZtGLij22tiZMM',
'publisher': {'name': 'The Motley Fool',
'homepage_url': 'https://www.fool.com/',
'title': 'Taysha Gene Therapies, Inc. (TSHA) Q1 2021 Earnings Call Transcript'}]}
預期輸出:
publisher title
Benzinga Earnings Scheduled For May 11, 2021
如果我先轉換為熊貓資料框,那么它會在資料框的元素中保留串列和字典...
uj5u.com熱心網友回復:
使用理解規范化字典,然后創建一個新的資料框
pd.DataFrame({'publisher': d['publisher']['name'], 'title': d['title']} for d in dct['results'])
或者您也可以嘗試json_normalize:
pd.json_normalize(dct['results'])[['title', 'publisher.name']]
結果
publisher title
0 Benzinga Earnings Scheduled For May 11, 2021
1 The Motley Fool Taysha Gene Therapies, Inc. (TSHA) Q1 2021 Earnings Call Transcript
uj5u.com熱心網友回復:
最初的 dict 應該是以下內容嗎?
data = {'results':
[{'id': 'knNyIzsECbl3YYPAKIQsEoaO4_roXDftV-auy9lSB-w',
'publisher': {'name': 'Benzinga',
'homepage_url': 'https://www.benzinga.com/'},
'title': 'Earnings Scheduled For May 11, 2021'},
{'id': 'KNDx8p0PytFULh33UWse-BkT7XxpxLZtGLij22tiZMM',
'publisher': {'name': 'The Motley Fool',
'homepage_url': 'https://www.fool.com/'},
'title': 'Taysha Gene Therapies, Inc. (TSHA) Q1 2021 Earnings Call Transcript'}]}
如果是這樣,那么您可以創建一個空的串列字典并附加選定的結果(然后您可以將其轉換為 DataFrame):
a_dict = {'publisher': [], 'title': []}
for i in data['results']:
if i['publisher']['name'] == 'Benzinga':
a_dict['publisher'].append(i['publisher']['name'])
a_dict['title'].append(i['title'])
a_dict
{'publisher': ['Benzinga'], 'title': ['Earnings Scheduled For May 11, 2021']}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/524026.html
上一篇:如何從另一個資料幀回傳最大值
下一篇:如何設定自定義星期映射
