df = pd.DataFrame({'a':[None,1, 2], 'b':[None, (1,2), (3,4)]})
a b
0 NaN None
1 1.0 (1, 2)
2 2.0 (3, 4)
我想将列中的元组设置为每个都有自己的列。然而,我对我的方法有一个问题
df[['b1', 'b2']] = pd.DataFrame(df['b'].tolist(), index=df.index)
ValueError: Columns must be same length as key
我试图填充一个空的元组,但它不需要元组。我怎样才能做到这一点
如果元组具有不同数量的元素,则更通用的解决方案是创建如下所示的自定义函数
在此函数中,传递数据帧和元组列的名称。该函数将自动创建与元组最大长度相同的列
如果元组的元素数不同:
您可以首先^{} 列
b
中的NaN
值,然后从列b
中的其余元素创建一个新的数据帧,并将生成的数据帧分配给列b1
和b2
:令我惊讶的是,this solution by piR²在您的案例中也起作用:
输出:
话虽如此,但有一个未来的警告,所以这不是一个长期的解决方案
相关问题 更多 >
编程相关推荐