如何拆分Vaex DataFrame列中的字符串列表为多列?
Vaex拆分列表列为多列的实现方法
针对你需求的场景,Vaex里可以通过两种方式实现将包含双元素列表的列拆分为两列:
方法一:使用apply快速拆分(适合小数据集)
直接对目标列使用apply函数,提取列表的第0和第1个元素生成新列:
# 生成col1列,取每个列表的第一个元素 df['col1'] = df['col'].apply(lambda x: x[0]) # 生成col2列,取每个列表的第二个元素 df['col2'] = df['col'].apply(lambda x: x[1])
方法二:向量化操作(适合大数据集,性能更优)
如果你的数据集较大,建议先将Python列表列转换为Vaex支持的数组类型,再通过索引提取元素,这种方式能充分利用Vaex的懒加载和向量化性能优势:
# 将原列表列转换为numpy数组列 df['col_array'] = df['col'].values.to_numpy() # 通过数组索引提取元素生成新列 df['col1'] = df['col_array'][:, 0] df['col2'] = df['col_array'][:, 1] # 若不需要原列和中间列,可删除 df = df.drop(['col', 'col_array'])
执行完上述操作后,你的DataFrame就会新增col1和col2两列,分别对应原列表中的两个元素。
内容的提问来源于stack exchange,提问作者HMadadi
相关产品推荐
相关产品推荐

