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

基于虚拟网格折叠Pandas DataFrame的新手技术求助

Pandas分段拼接列内容求助

我是Pandas新手,现寻求技术帮助。我有如下测试数据:

import numpy as np
import pandas as pd

raw_data = {
   "Unnamed: 0" : ["Index_with_NaNs", 1., np.nan, 2., np.nan, np.nan, 3., np.nan, np.nan, np.nan],
    "A" : ['Ali', 'a', 'e', 'i', np.nan, 'q', 'u', 'y', 'c3', 'g7'],
    "B" : ['Bob', 'b', 'f', 'j', 'n', 'r', 'v', 'z', 'd4', 'h8'],
    "C" : ['Cha', 'c', 'g', 'k', 'o', 's', np.nan, 'a1', np.nan, 'i9'],
    "D" : ['Den', 'd', 'h', 'l', 'p', 't', 'x', np.nan, 'f6', 'j10']    
}

raw_df = pd.DataFrame(raw_data)
display(raw_df)

我需要针对A、B、C、D列,将每列中垂直方向的内容以空格为分隔符拼接,直到在"Unnamed: 0"列中遇到下一个非NaN的整数值为止(注:raw_df包含NaN值)。简单来说,就是把数据按Unnamed:0列里的1.0、2.0、3.0分成三段,每段对应列的非NaN内容拼接成一个字符串。

最终想要得到的结果是一个3行的DataFrame,每一行对应一段的拼接结果,比如A列第一段是"Ali a e",第二段是"i q",第三段是"u y c3 g7",以此类推。

我已经生成了用于识别分段位置的布尔序列,但不知道怎么完成后续的分段拼接处理:

# 转换为字符串类型,用正则匹配分段索引
split_indices = raw_df["Unnamed: 0"].astype(str).str.match(r"[1-9]{1}\.0")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 03:00:08