附加具有不同第一个有效索引的列
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
我有以下数据框:
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