如何从普通列表与嵌套列表自动创建Pandas DataFrame?
实现自动生成目标Pandas DataFrame
可以用两种简洁的方法实现,无需手动拼接:
方法一:zip遍历+列表推导式构造数据
通过遍历对应位置的用户名和子列表,生成(user, value)元组列表,再传入Pandas构造DataFrame:
import pandas as pd user_lst = ['user1', 'user2', 'user3'] big_lst = [['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'i']] # 构造数据列表 data = [(user, val) for user, sub_lst in zip(user_lst, big_lst) for val in sub_lst] # 生成目标DataFrame df = pd.DataFrame(data, columns=['user', 'value'])
方法二:Pandas原生explode方法(更简洁)
先构造包含用户名和对应子列表的临时DataFrame,再用explode展开子列表:
import pandas as pd user_lst = ['user1', 'user2', 'user3'] big_lst = [['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'i']] # 构造临时DataFrame temp_df = pd.DataFrame({'user': user_lst, 'value': big_lst}) # 展开子列表得到目标结构 df = temp_df.explode('value').reset_index(drop=True)
两种方法最终生成的DataFrame结构一致:
user value 0 user1 a 1 user1 b 2 user1 c 3 user2 d 4 user2 e 5 user2 f 6 user3 g 7 user3 h 8 user3 i
内容的提问来源于stack exchange,提问作者A_K
相关产品推荐
相关产品推荐

