合并dataframe python的列表
我有一个列表,每个列表包含一个公共列,a,B,用作索引,如下所示合并dataframe python的列表,python,pandas,list,dataframe,Python,Pandas,List,Dataframe,我有一个列表,每个列表包含一个公共列,a,B,用作索引,如下所示 df_list=[[df1], [df2],[df3], [df4], [df5, df6]] flat_list = [item for sublist in df_list for item in sublist] #L3 = pd.DataFrame.from_dict(map(dict,D)) L3=pd.concat(flat_list) 我希望基于所有数据帧中的公共列a、B将数据帧
df_list=[[df1], [df2],[df3], [df4], [df5, df6]]
flat_list = [item for sublist in df_list for item in sublist]
#L3 = pd.DataFrame.from_dict(map(dict,D))
L3=pd.concat(flat_list)
我希望基于所有数据帧中的公共列a、B将数据帧合并为单个数据帧
我试过pd.concatdf_列表。这不起作用并产生错误
list indices must be integers or slices, not list
有没有办法做到这一点尝试使用以下方法:
dfs = [df1, df2, df3, ... etc]
print(pd.concat(dfs))
将dfs存储在列表中时,不应将其保留在第二个列表中,注意pd.concat会获取dfs列表。解决方案如下
df_list=[[df1], [df2],[df3], [df4], [df5, df6]]
flat_list = [item for sublist in df_list for item in sublist]
#L3 = pd.DataFrame.from_dict(map(dict,D))
L3=pd.concat(flat_list)
您需要向pd.concat提供平面列表或其他平面结构 是嵌套的。如果您没有填充所述df_列表的命令,则需要首先使用itertools.chain将其展平,如下所示:
import itertools
flat_df_list = list(itertools.chain(*df_list))
然后提供平面图或利用pd.concat也与itertators合作的事实:
total_df = pd.concat(itertools.chain(*df_list))
你需要更具体一些。为什么现在在df_列表中有一个列表?[d5,d6]是一个列表而不是一个整数,这就是为什么会出现该错误。你能更具体地阐述一下吗,比如你必须创建一列列表或者什么?