如何在Python中将嵌套DataFrame列表转为拼接后的DataFrame列表?
问题解决方法
首先纠正两个基础问题:
- 你写的
list = {[df1],[df1,df2],[df1,df2,df3]}是错误的,Python集合不能包含可变的列表元素,应该改成嵌套列表,而且别用list当变量名(会覆盖内置的list类型),比如改成df_nested_list = [[df1], [df1, df2], [df1, df2, df3]] - 你代码报错的原因是:循环里的
n已经是每个子列表(比如第一个n就是[df1]),你却用list[n]试图用列表当索引,Python列表只接受整数/切片当索引,所以触发TypeError
正确实现代码
循环写法
import pandas as pd df_nested_list = [[df1], [df1, df2], [df1, df2, df3]] list1 = [] for sub_list in df_nested_list: # 直接把当前子列表传给pd.concat即可,不用额外套[] merged_df = pd.concat(sub_list) list1.append(merged_df)
更简洁的列表推导式写法
import pandas as pd df_nested_list = [[df1], [df1, df2], [df1, df2, df3]] list1 = [pd.concat(sub_list) for sub_list in df_nested_list]
执行后list1就是你要的[df_a, df_b, df_c],其中df_a是df1,df_b是df1与df2的拼接结果,df_c是三个DataFrame的拼接结果。
内容的提问来源于stack exchange,提问作者michan2378
相关产品推荐
相关产品推荐

