python - 如何将某些值移动到另一列以获取后面的所有值
问题描述
假设我有一个带有不同子标题的类似表格的数据框。我想将 [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]
我的想法是为每个值 [] 拆分数据框,然后在将值 [] 放入列中后合并数据框。有没有办法一次做到这一点?
解决方案
国际大学联合会,
假设您的第一列被称为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]
推荐阅读
- reactjs - 没有路线匹配位置“/登录”反应路由器dom v6
- microsoft-graph-api - Microsoft Graph:请求没有自定义扩展的消息
- firebase - 如何使用 charles 代理检查 Firestore 网络流量?
- java - Openapi 生成器角度未正确生成多部分表单数据端点。(useForm 默认为 false)
- python - 无法将 yolov4 tiny 转换为 tf 模型不能 - 无法将大小为 607322 的数组重塑为形状 (256,384,3,3)
- javascript - 使用超链接在 ascx.vb 文件上调用函数
- flutter - 使用谷歌地图颤振包显示方向?
- vba - 在复制 Outlook 约会时更改一些值
- terraform - SERVICE_QUOTA cloudwatch ecs 警告 terraform 中的验证错误
- html - 如何使我的网页图标保持正确?