gpt4 book ai didi

python - 如何在Python中连接pandas数据框

转载 作者:太空宇宙 更新时间:2023-11-03 21:29:19 24 4
gpt4 key购买 nike

我有一个Python对象列表,它们有点像这样

team_1_players1=[] is a list

team_1_players1=[]内部存储了多个json对象。

像这样的第一个 Json 对象

[[{'age_days': '72', 'age_years': '30', 'alpha_name': 'RAVAL,JA', 'batting_hand': 'left-hand batsman', 'batting_style': 'lhb', 'batting_style_long': 'left-hand bat', 'bowling_hand': 'right-arm bowler', 'bowling_pacespin': 'spin bowler', 'bowling_style': 'lb', 'bowling_style_long': 'legbreak ', 'captain': '0', 'card_long': 'JA Raval', 'card_qualifier': '', 'card_short': 'Raval', 'dob': '1988-09-22', 'keeper': '0', 'known_as': 'Jeet Raval', 'mobile_name': 'Raval', 'object_id': '277914', 'player_id': '51094', 'player_primary_role': 'opening batsman', 'player_style_id': '1', 'player_type': '1', 'player_type_name': 'player', 'popular_name': 'Raval', 'portrait_alt_id': '1', 'portrait_object_id': '397349', 'status_id': '3'}, {'age_days': '245', 'age_years': '26', 'alpha_name': 'LATHAM,TWM', 'batting_hand': 'left-hand batsman', 'batting_style': 'lhb', 'batting_style_long': 'left-hand bat', 'bowling_hand': 'right-arm bowler', 'bowling_pacespin': 'pace bowler', 'bowling_style': 'rm', 'bowling_style_long': 'right-arm medium ', 'captain': '0', 'card_long': 'TWM Latham', 'card_qualifier': '', 'card_short': 'Latham', 'dob': '1992-04-02', 'keeper': '0', 'known_as': 'Tom Latham', 'mobile_name': 'Latham', 'object_id': '388802', 'player_id': '59148', 'player_primary_role': 'wicketkeeper batsman', 'player_style_id': '7', 'player_type': '1', 'player_type_name': 'player', 'popular_name': 'Latham', 'portrait_alt_id': '1', 'portrait_object_id': '1099471', 'status_id': '3'}]]

当我尝试存储在数据框中时,我会得到这样的结果

0{'age_days': '72', 'age_years': '30', 'alpha_n...}   
1 {'age_days': '196', 'age_years': '23', 'alpha_...}
2 {'age_days': '99', 'age_years': '29', 'alpha_n...}

第二个Json对象是这样的

[[{'age_days': '123', 'age_years': '25', 'alpha_name': 'LIVINGSTONE,LS', 'batting_hand': 'right-hand batsman', 'batting_style': 'rhb', 'batting_style_long': 'right-hand bat', 'bowling_hand': 'right-arm bowler', 'bowling_pacespin': 'spin bowler', 'bowling_style': 'lb', 'bowling_style_long': 'legbreak ', 'captain': '0', 'card_long': 'LS Livingstone', 'card_qualifier': '', 'card_short': 'Livingstone', 'dob': '1993-08-04', 'keeper': '0', 'known_as': 'Liam Livingstone', 'mobile_name': '', 'object_id': '403902', 'player_id': '59832', 'player_primary_role': None, 'player_style_id': None, 'player_type': '1', 'player_type_name': 'player', 'popular_name': '', 'portrait_alt_id': '1', 'portrait_object_id': '863825', 'status_id': '3'}, {'age_days': '142', 'age_years': '23', 'alpha_name': 'HAIN,SR', 'batting_hand': 'right-hand batsman', 'batting_style': 'rhb', 'batting_style_long': 'right-hand bat', 'bowling_hand': 'right-arm bowler', 'bowling_pacespin': 'spin bowler', 'bowling_style': 'ob', 'bowling_style_long': 'right-arm offbreak ', 'captain': '0', 'card_long': 'SR Hain', 'card_qualifier': '', 'card_short': 'Hain', 'dob': '1995-07-16', 'keeper': '0', 'known_as': 'Sam Hain', 'mobile_name': 'Hain', 'object_id': '555850', 'player_id': '67482', 'player_primary_role': None, 'player_style_id': None, 'player_type': '1', 'player_type_name': 'player', 'popular_name': 'Hain', 'portrait_alt_id': '1', 'portrait_object_id': '631902', 'status_id': '3'}]]

我想将所有 json 对象存储到数据框中这是将 json 对象附加到列表中的代码

team_1_players1=[]
for x in matchList:
m=MyMatch(x)
team_1_players1.append(m.team_1_players)

这就是我将 team_1_players1 列表转换为数据帧的方式

for i in range(team_1_players1):
df = pd.DataFrame(team_1_players1[i])

当我只使用这条线而不循环

df = pd.DataFrame(team_1_players1[0])

我得到这样的数据框

enter image description here

当我像这样打印第二个索引时,我得到结果

df = pd.DataFrame(team_1_players1[1])

enter image description here

现在我想合并所有结果

这就是为什么我使用 for 循环来迭代所有数据帧

for i in range(team_1_players1):
df = pd.DataFrame(team_1_players1[i])

我有超过 1000 个 json 对象存储在 team_1_players1 列表中,所以有什么有效的方法

最佳答案

首先,展平嵌套列表:

import itertools as it 

data = list(it.chain.from_iterable(team_1_players1))

然后使用pd.DataFrame.from_records(data):

df = pd.DataFrame.from_records(data)

关于python - 如何在Python中连接pandas数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53633954/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com