首页 > 解决方案 > 将现有数据框中的一列添加到每隔一列之间的另一列

问题描述

我会尽力解释这一点,因为我在描述标题时遇到了麻烦。我有两个数据框。我想做的是将 df1 中的一列添加到 df2 之间的所有其他列之间。例如,df1 看起来像这样:

     Age    City       

0    34     Sydney     

1    30     Toronto    

2    31     Mumbai     

3    32     Richmond  

添加 df2 后,它看起来像这样:

    Name  Age  Clicks    City       Country

0   Ali   34     10     Sydney     Australia

1   Lori  30     20     Toronto    Canada

2  Asher  31     45     Mumbai     United States

3  Lylah  32     33     Richmond   United States

在代码方面,我什至不确定从哪里开始。


'''Concatenating the dataframes'''
for i in range len(df2):
    pos = i+1
    df3 = df2.insert

#df2 = pd.concat([df1, df2], axis=1).sort_index(axis=1)
#df2.columns = np.arange(len(df2.columns))
#print (df2)

我原本打算通过一个循环来运行它,但我不太确定该怎么做。任何帮助,将不胜感激!

标签: pythonpandasdataframe

解决方案


您可以使用itertools.zip_longest. 例如:

from itertools import zip_longest

new_columns = [
    v
    for v in (c for a in zip_longest(df2.columns, df1.columns) for c in a)
    if not v is None
]

df_out = pd.concat([df1, df2], axis=1)[new_columns]
print(df_out)

印刷:

    Name  Age  Clicks      City        Country
0    Ali   34      10    Sydney      Australia
1   Lori   30      20   Toronto         Canada
2  Asher   31      45    Mumbai  United States
3  Lylah   32      33  Richmond  United States

推荐阅读