Python pandas如何将多列合并为列表类型的新列
解决方案
以下基于Pandas工具实现,生成的ColumnA每个元素原生为Python列表类型,可直接用于后续接口调用:
实现方法
方法1:逐行处理(写法简单,适合中小数据量)
选择需要合并的列,逐行删除空值后转为列表:
import pandas as pd # 此处替换为你自己的原始DataFrame变量名 df['ColumnA'] = df[['Column1', 'Column2', 'Column3', 'Column4']].apply( lambda row: row.dropna().tolist(), axis=1 )
方法2:向量化处理(性能更高,适合百万级以上大数据量)
先把目标列转为numpy数组再批量处理,比apply快3~10倍:
target_cols = ['Column1', 'Column2', 'Column3', 'Column4'] df['ColumnA'] = [ item[~pd.isna(item)].tolist() for item in df[target_cols].to_numpy() ]
效果验证
执行后可直接校验类型是否符合要求:
# 输出第一个元素的类型,预期返回 <class 'list'> print(type(df['ColumnA'].iloc[0]))
后续接口调用示例
可直接按索引遍历取列表数据发起POST请求:
import requests API_URL = "替换为你的REST接口地址" for idx in df.index: payload = { "index": idx, "params": df.loc[idx, 'ColumnA'] } response = requests.post(API_URL, json=payload) # 按需处理接口返回逻辑
内容的提问来源于stack exchange,提问作者hanna
相关产品推荐
相关产品推荐

