You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas列合并问题:手动合并两列及SharePoint转DataFrame列异常排查

问题1:如何使用Pandas将两列合并为一列?

以下是几种实用的实现方法:

  • 文本列直接拼接
    适用于字符串类型列,可添加自定义分隔符:
    import pandas as pd
    
    df = pd.DataFrame({'列A': ['苹果', '香蕉'], '列B': ['红', '黄']})
    df['合并列'] = df['列A'] + '(' + df['列B'] + ')'
    
  • str.cat()方法(支持缺失值处理)
    更灵活的拼接方式,可指定缺失值替代文本:
    df['合并列'] = df['列A'].str.cat(df['列B'], sep='-', na_rep='无数据')
    
  • 非文本列拼接
    先将数值型等非文本列转为字符串再拼接:
    df = pd.DataFrame({'数字1': [10, 20], '数字2': [30, 40]})
    df['合并列'] = df['数字1'].astype(str) + '_' + df['数字2'].astype(str)
    
  • 自定义逻辑拼接
    用apply()实现复杂规则的合并:
    df['合并列'] = df.apply(lambda row: f"{row['列A']}_编号{row['数字1']}", axis=1)
    
问题2:SharePoint REST API数据转DataFrame列合并问题解决办法

从输出情况来看,核心原因是循环处理数据时,没有正确构建行级字典列表,导致DataFrame将所有内容压缩到一列。以下是针对性修复方案:

正确处理流程

方法1:直接用API响应的value字段构建DataFrame

SharePoint REST API返回的value字段通常就是包含每行数据的字典列表,直接传入DataFrame即可:

import pandas as pd
# 假设api_response是你从SharePoint获取的响应结果
df = pd.DataFrame(api_response['value'])

方法2:循环处理时确保收集完整行数据

如果需要对原始数据做清洗,循环中要收集每个条目完整的字段字典:

processed_data = []
for item in api_response['value']:
    # 按需提取或清洗字段,比如处理嵌套结构
    cleaned_row = {
        '标题': item['Title'],
        '创建时间': item['Created'],
        '作者': item['Author']['Title']  # 提取嵌套字段值
    }
    processed_data.append(cleaned_row)
df = pd.DataFrame(processed_data)

排查关键点

  • 打印processed_data的前2个元素,确认每个元素是包含多字段的字典,而非单个值或元组
  • 检查API返回的原始数据结构,确保value下的每个元素是行级数据对象

内容的提问来源于stack exchange,提问作者Bernhard Sailer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 13:24:26