如何使用for循环添加多个不同的DataFrame?

How to add multiple different DataFrame using for loop?

我有多个数据框,我想在前一个数据框的第 3 个值之后添加下一个数据框的值。

我是 pyhton 的新手,我正在使用 google colab,所以我希望你能帮助我。非常感谢。所以下面是我想怎么做的一个例子。

df1:

Index Column_1
0     1
1     1
2     1
3     1
4     1
5     1

df2:

Index Column_2
0     2
1     2
2     2
3     2
4     2
5     2

df3:

Index Column_3
0     3
1     3
2     3
3     3
4     3
5     3

我想从 df1 的索引 3 开始添加 df2 的值。 我还想从 df2 的索引 6 开始添加 df3 的值。 所以基本上索引随着数据帧的增加而加倍。

所以 df1 + df2 + df3 应该看起来是这样的:

df4:

Index Column_1 Column_2 Column_3
0     1                 
1     1
2     1
3     1         3
4     1         3
5     1         3       
6               2       5
7               2       5
8               2       5
9                       3
10                      3
11                      3

df4

Index Column_4
0     1
1     1
2     1 
3     3
4     3
5     3
6     5
7     5
8     5
9     3
10    3
11    3

有没有办法在循环中执行此操作?

希望大家能帮帮我。非常感谢。

使用pd.merge

df = df1.merge(df2.assign(Index=df2['Index']+3), how='outer') \
        .merge(df3.assign(Index=df3['Index']+6), how='outer')
df['Column_2'] += df['Column_1'].fillna(0)
df['Column_3'] += df['Column_2'].fillna(0)
>>> df
    Index  Column_1  Column_2  Column_3
0       0       1.0       NaN       NaN
1       1       1.0       NaN       NaN
2       2       1.0       NaN       NaN
3       3       1.0       3.0       NaN
4       4       1.0       3.0       NaN
5       5       1.0       3.0       NaN
6       6       NaN       2.0       5.0
7       7       NaN       2.0       5.0
8       8       NaN       2.0       5.0
9       9       NaN       NaN       3.0
10     10       NaN       NaN       3.0
11     11       NaN       NaN       3.0

更新

Is there a way I can render the result in one column only?

df['Column_4'] = df.ffill(axis=1)['Column_3']
>>> df
    Index  Column_1  Column_2  Column_3  Column_4
0       0       1.0       NaN       NaN       1.0
1       1       1.0       NaN       NaN       1.0
2       2       1.0       NaN       NaN       1.0
3       3       1.0       3.0       NaN       3.0
4       4       1.0       3.0       NaN       3.0
5       5       1.0       3.0       NaN       3.0
6       6       NaN       2.0       5.0       5.0
7       7       NaN       2.0       5.0       5.0
8       8       NaN       2.0       5.0       5.0
9       9       NaN       NaN       3.0       3.0
10     10       NaN       NaN       3.0       3.0
11     11       NaN       NaN       3.0       3.0