df1 = pd.DataFrame({"A": ["A0", "A1", "A2", "A3"]
, "B": ["B0", "B1", "B2", "B3"]
, "C": ["C0", "C1", "C2", "C3"]
, "D": ["D0", "D1", "D2", "D3"]
, "E": ['E0', 'E1', 'E2', 'E3']})
# since E0 isn't column in subsequent dfs their values will be NaN
df2 = pd.DataFrame({"A": ["A4", "A5", "A6", "A7"]
, "B": ["B4", "B5", "B6", "B7"]
, "C": ["C4", "C5", "C6", "C7"]
, "D": ["D4", "D5", "D6", "D7"]})
df3 = pd.DataFrame( {"A": ["A8", "A9", "A10", "A11"]
, "B": ["B8", "B9", "B10", "B11"]
, "C": ["C8", "C9", "C10", "C11"]
, "D": ["D8", "D9", "D10", "D11"]})
frames = [df1, df2, df3]
result = pd.concat(frames, ignore_index =True)#ignore index resets indecies
result #->
A B C D E
0 A0 B0 C0 D0 E0
1 A1 B1 C1 D1 E1
2 A2 B2 C2 D2 E2
3 A3 B3 C3 D3 E3
4 A4 B4 C4 D4 NaN
5 A5 B5 C5 D5 NaN
6 A6 B6 C6 D6 NaN
7 A7 B7 C7 D7 NaN
8 A8 B8 C8 D8 NaN
9 A9 B9 C9 D9 NaN
10 A10 B10 C10 D10 NaN
11 A11 B11 C11 D11 NaN
# Stack the DataFrames on top of each other
#survey_sub and survey_sub_last10 are both dataframes
vertical_stack = pd.concat([survey_sub, survey_sub_last10], axis=0)
# Place the DataFrames side by side
horizontal_stack = pd.concat([survey_sub, survey_sub_last10], axis=1)
In [1]: df1 = pd.DataFrame(
...: {
...: "A": ["A0", "A1", "A2", "A3"],
...: "B": ["B0", "B1", "B2", "B3"],
...: "C": ["C0", "C1", "C2", "C3"],
...: "D": ["D0", "D1", "D2", "D3"],
...: },
...: index=[0, 1, 2, 3],
...: )
In [8]: df4 = pd.DataFrame(
...: {
...: "B": ["B2", "B3", "B6", "B7"],
...: "D": ["D2", "D3", "D6", "D7"],
...: "F": ["F2", "F3", "F6", "F7"],
...: },
...: index=[2, 3, 6, 7],
...: )
...:
In [9]: result = pd.concat([df1, df4], axis=1)
# This will merge columns of both the dataframes
# Stack the DataFrames on top of each other
vertical_stack = pd.concat([survey_sub, survey_sub_last10], axis=0)
# Place the DataFrames side by side
horizontal_stack = pd.concat([survey_sub, survey_sub_last10], axis=1)