CF84 CF84 - 17 days ago 5
Python Question

Pandas: iteratively concatenate columns stored in a dictionary of dataframes

Suppose I have a dictionary of

pandas
dataframes where the keys are
0, 1, 2, ..., 999
, and the values are dataframes like this (
test_df
):

A B C
0 1.438161 -0.210454 -1.983704
1 -0.283780 -0.371773 0.017580
2 0.552564 -0.610548 0.257276
3 1.931332 0.649179 -1.349062
4 1.656010 -1.373263 1.333079
5 0.944862 -0.657849 1.526811


Say that the index means nothing to you, and that you want to create a new dataframe where columns
A
and
B
are concatenated:

mydf=pd.concat([test_df[0]['A'],test_df[0]['B']], axis=1, keys=['A','B'])


Now, can I use this line inside a for loop which iterates over all the keys in my dictionary of dataframes?

If not, what would be another way of doing this? The result would be a dataframe with two columns,
A
and
B
, and
6x1000
rows. The index column would therefore go from
0
to
5999
.

Answer

If df_dic is your dictionary, you can do:

pd.concat([df[['A', 'B']] for df in df_dic.values()]).reset_index(drop=True)

Here is what the result looks like if df_dic contains two key-value pairs:

enter image description here

Comments