为了账号安全,请及时绑定邮箱和手机立即绑定

在另一行之间插入列行

在另一行之间插入列行

呼唤远方 2021-07-22 18:04:15
我有一个 df 由两列组成,如下所示:    rows    A     B    0       1     7    1       9     11    2       20    30    3       32    35我想创建另一列,以便将 A 列的每一行插入到 B 列的两行之间。输出将如下所示:    rows    C    0       7    1       9    2       11    3       20    4       30    5       32    6       35非常感谢您的帮助
查看完整描述

2 回答

?
森林海

TA贡献2011条经验 获得超2个赞

取的列数组A和B然后使用flatten或ravel并采取值形成第一指数:


df1 = pd.DataFrame(df[['A','B']].values.flatten()[1:],columns=['C']).\

                   reset_index().rename(columns={'index':'rows'}

要么:


df1 = pd.DataFrame(df[['A','B']].values.ravel()[1:],columns=['C']).\

                       reset_index().rename(columns={'index':'rows'})

print(df1)


   rows   C

0     0   7

1     1   9

2     2  11

3     3  20

4     4  30

5     5  32

6     6  35


查看完整回答
反对 回复 2021-07-28
?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

使用ravelarangeDataFrame构造器:

a = df[['A','B']].values.ravel()[1:]


df1 = pd.DataFrame({'rows':np.arange(len(a)), 'C':a})

print (df1)

   rows   C

0     0   7

1     1   9

2     2  11

3     3  20

4     4  30

5     5  32

6     6  35

或使用melt:


df1 = (df.melt(['rows'], value_name='C')

        .sort_values('rows')['C']

        .iloc[1:]

        .reset_index(drop=True)

        .rename_axis('rows')

        .reset_index())

print (df1)

   rows   C

0     0   7

1     1   9

2     2  11

3     3  20

4     4  30

5     5  32

6     6  35


查看完整回答
反对 回复 2021-07-28
  • 2 回答
  • 0 关注
  • 258 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号