附加具有不同第一个有效索引的列

Appending columns with different first valid index

我有以下数据框:

df = pd.DataFrame(
    list(zip([1, 2, 3, 4, 5, 6, 7, 12, 32, 4, 2, 4],
             [5, 6, 7, 84, 5, 3, 12, 32, 3, 5, 3],
             [9, 10, 11, 12, 4, 5, 2, 12, 45, 45, 65, 34],
             [13, 14, 15, 16, 12, 23, 5, 12, 3, 2, 5, 3],
             [17, 18, 19, 20, 23, 34, 45, 2, 4, 6, 9, 63],
             [21, 22, 23, 24, 12, 4, 5, 23, 42, 53, 35, 36])),
    columns=list('ABCDEF')
)
df.iloc[2:, df.columns.get_loc('A')] = np.nan
df.iloc[4:, df.columns.get_loc('B')] = np.nan
df.iloc[6:, df.columns.get_loc('C')] = np.nan
df.iloc[8:, df.columns.get_loc('D')] = np.nan
df.iloc[9:, df.columns.get_loc('E')] = np.nan

df:
        A   B   C   D  E    F
    0   1   5   9   13 17   21
    1   2   6   10  14 18   22
    2   NaN 7   11  15 19   23
    3   NaN 84  12  16 20   24
    4   NaN NaN 4   12 23   12
    5   NaN NaN 5   23 34   4
    6   NaN NaN NaN 5  45   5
    7   NaN NaN NaN 12  2   23
    8   NaN NaN NaN NaN 4   42
    9   NaN NaN NaN NaN NaN 53
    10  NaN NaN NaN NaN NaN 35

我想将其他列附加到 A 列,这样当一列结束时,下一列附加到前一列结束的索引上,以获得以下内容:

df:
        A
    0   1
    1   2
    2   7
    3   84
    4   4
    5   5
    6   5
    7   12
    8   4
    9   53
    10  35

如何做到这一点?谢谢!

使用bfill:

>>> df.bfill(axis=1)["A"]
0      1.0
1      2.0
2      7.0
3     84.0
4      4.0
5      5.0
6      5.0
7     12.0
8      4.0
9     53.0
10    35.0