python - 如何扩展行包含值列表的数据框?
问题描述
c1 c2 c3
0 [1, 2] [[a, b], [c, d, e]] [[aff , bgg], [cff, ddd, edd]]
我希望输出如下:
c1 c2 c3
0 1 a aff
1 1 b bgg
2 2 c cff
3 2 d ddd
4 2 e edd
解决方案
您可以使用np.repeat()
和chain.from_iterable()
:
df = pd.DataFrame({'c1': np.repeat(df['c1'].values[0], [len(x) for x in (chain.from_iterable(df['c2']))]),
'c2': list(chain.from_iterable(chain.from_iterable(df['c2']))),
'c3': list(chain.from_iterable(chain.from_iterable(df['c3'])))
})
回报:
c1 c2 c3
0 1 a aff
1 1 b bgg
2 2 c cff
3 2 d ddd
4 2 e edd
请记住,这是相对特定于您的用例的。它假定您的c2
和c3
列是用相同的形状实例化的。
推荐阅读
- python - (Python)如何解决“缺少 1 个必需的位置论证:'self'”的问题?
- python - How to use new android Scoped Storage in kivy app
- django-rest-framework - 为什么获取视图 firstapp.views.perticular_customers 没有返回 HttpResponse 对象。它在 DRF 中返回 None 而不是?
- apache-kafka - 如何排出kafka主题中的记录
- snowflake-cloud-data-platform - 现在是否在公共预览版中提供基于 SQL 语言的过程功能
- android - 在 Compose 中将内容包装到具有剪裁形状的文本?
- css - 滚动div内的CSS div定位
- javascript - 使用多个 if 和对象键改进代码,javascript 中的值
- java - 不显示要移动到 JFrame 的图像
- node.js - npm init 不起作用,ENOENT:没有这样的文件或目录