我有一个以下结构的数据帧:
cNames | cValues | number
[a,b,c] | [1,2,3] | 10
[a,b,d] | [55,66,77]| 20
我想转换-从cNames中的名称创建列
但我无法通过转置实现这一点,因为我希望列表中的每个值都有一列。
所需输出:
a | b | c | d | number
1 | 2 | 3 | NaN | 10
55 | 66 | NaN | 77 | 20
我如何才能达到这个结果?
谢谢
创建DF的代码:
d = {'cNames': [['a','b','c'], ['a','b','d']], 'cValues': [[1,2,3],
[55,66,77]], 'number': [10,20]}
df = pd.DataFrame(data=d)
如果列顺序重要:
一个选项是
concat
:或数据帧结构:
输出:
更新按运行时对样本数据进行性能排序
数据帧
concat:
KJDII的新系列
Scott的应用程序(pd.Series.explode)
wwnde的集合索引。应用(分解)
塞利乌斯的双重爆炸
您可以连接
explode()
,然后将表旋转回所需的输出输出:
遗憾的是,explode的输出是
object
类型,因此,我们必须在旋转之前首先将其转换为pd.to_numeric()
。否则,将没有要聚合的数值相关问题 更多 >
编程相关推荐