如何向DataFrame指定列的空列表中追加其他列的值?
解决方法
直接替换空列表为[a, b]组合
如果只是要把c列的空列表替换成对应行a和b的数值列表,用向量化操作效率最高:
import pandas as pd # 模拟你的原始DataFrame(无截图时的示例结构) df = pd.DataFrame({'a': [1, 3, 5], 'b': [2, 4, 6], 'c': [[], [], []]}) # 生成a、b值的列表并赋值给c列 df['c'] = df[['a', 'b']].values.tolist()
追加值到现有列表(兼容非空情况)
如果后续c列可能已有元素,需要追加而不是替换,用逐行处理的方式:
df['c'] = df.apply(lambda row: row['c'] + [row['a'], row['b']], axis=1)
更高效的批量处理方式
当数据量较大时,避免apply逐行循环,用以下方法:
# 先打包成元组,再转为列表 df['c'] = list(zip(df['a'], df['b'])) df['c'] = df['c'].apply(list)
内容的提问来源于stack exchange,提问作者GeekGroot
相关产品推荐
相关产品推荐

