python - 分隔/拆分行值并形成单独的行
问题描述
数据的可重现代码:
import pandas as pd
dict = {"a": "[1,2,3,4]", "b": "[1,2,3,4]"}
dict = pd.DataFrame(list(dict.items()))
dict
0 1
0 a [1,2,3,4]
1 b [1,2,3,4]
我想拆分/分隔“第 1 列”并为每个拆分值创建单独的行。
预期输出:
0 1
0 a 1
1 a 2
2 a 3
3 a 4
4 b 1
5 b 2
6 b 3
7 b 4
我应该先删除括号然后拆分值吗?我真的不知道这样做。请问有什么可以帮助我解决这个问题的参考吗?
解决方案
基于该答案的逻辑:
s = d[1]\
.apply(lambda x: pd.Series(eval(x)))\
.stack()
s.index = s.index.droplevel(-1)
s.name = "split"
d.join(s).drop(1, axis=1)
推荐阅读
- javascript - 将动态字符串值传递给 vuelidate $v 对象 - Vue
- python - 使用 python 考虑屏幕输出的可变性
- android - 是否可以从 android studio 中的现有图片中获取时间戳?
- javascript - Notepad++ 没有打开我的 html 文件,而是打开了 google 主页
- module - 我在哪里可以找到压缩的 Stock/Default Prestashop 模块?
- angular - 错误 TS2365:运算符 '+' 不能应用于类型 'number[]' 和 '-1000'
- javascript - 如何在 Edge 上获取画布变换矩阵?
- json - 为什么来自 JSON 的图像未在 react native 的图像标签中呈现?
- uwp - 如何配置 DeviceInformation.createWatcher() 以过滤 BTLE 服务?
- docusignapi - Docusign:使用 API 以顺序流上传文档和请求签名