首页 > 解决方案 > 如何将某些值移动到另一列以获取后面的所有值

问题描述

假设我有一个带有不同子标题的类似表格的数据框。我想将 [x]、[y]、[z] 从列 x 移动到 [x] 下和下一个 [] 值之上的每个值的另一列,如下所示:

0   [x]
1   a
2   b
3   c
4   [y]
5   d
6   e
7   [z]
8   f

0   a   [x]
1   b   [x]
2   c   [x]
3   d   [y]
4   e   [y]
5   f   [z]
6   g   [z]

我的想法是为每个值 [] 拆分数据框,然后在将值 [] 放入列中后合并数据框。有没有办法一次做到这一点?

标签: pythonpandasdataframe

解决方案


国际大学联合会,

假设您的第一列被称为A

想法是使用基本过滤和ffill

不确定g您的预期输出在哪里。

df.loc[df['A'].str.contains('\['),'new_col'] = df['A']

df['new_col'] = df['new_col'].ffill()

df_new = df.loc[df['A'].str.contains('\[')==False]

print(df_new)
   A new_col
1  a     [x]
2  b     [x]
3  c     [x]
5  d     [y]
6  e     [y]
8  f     [z]

推荐阅读