基于虚拟网格折叠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
相关产品推荐
相关产品推荐

