如何在现有数据框中的每列之后插入空列

Mat*_* 99 2 python dataframe pandas

我有一个如下所示的数据框

df = pd.DataFrame({"A":[1,2,3,4], 
"B":[3,4,5,6], 
"C":[2,3,4,5]})
Run Code Online (Sandbox Code Playgroud)

我想在数据框中的每个现有列之后插入一个空列(类型为字符串),以便输出看起来像

    A  col1 B   col2    C   col3
0   1   NaN 3   NaN     2   NaN
1   2   NaN 4   NaN     3   NaN
2   3   NaN 5   NaN     4   NaN
3   4   NaN 6   NaN     5   NaN
Run Code Online (Sandbox Code Playgroud)

r.o*_*ook 5

实际上,有一种更简单的方法,感谢reindex

df.reindex([x for i, c in enumerate(df.columns, 1) for x in (c, f'col{i}')], axis=1)
Run Code Online (Sandbox Code Playgroud)

结果:

   A  col1  B  col2  C  col3
0  1   NaN  3   NaN  2   NaN
1  2   NaN  4   NaN  3   NaN
2  3   NaN  5   NaN  4   NaN
3  4   NaN  6   NaN  5   NaN
Run Code Online (Sandbox Code Playgroud)

这是另一种更复杂的方法:

import numpy as np

df.join(pd.DataFrame(np.empty(df.shape, dtype=object), columns=df.columns + '_sep')).sort_index(axis=1)

   A A_sep  B B_sep  C C_sep
0  1  None  3  None  2  None
1  2  None  4  None  3  None
2  3  None  5  None  4  None
3  4  None  6  None  5  None
Run Code Online (Sandbox Code Playgroud)