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

为何Pandas无内置魔方式转换?求特定数据转换实现方案

实现方案

根据你提供的DataFrame和转换需求,核心是定位所有成对的REF A/REF B,并提取它们正下方的第一个有效val-数值对。以下是具体实现步骤和代码:

步骤说明

  • 遍历整个DataFrame,定位所有REF A的位置,同时验证其右侧相邻单元格是否为REF B,筛选出有效配对的行列索引。
  • 针对每个有效配对的位置,向下查找对应列中第一个非空的val和数值组合。
  • 将收集到的所有有效组合整理成最终的结果DataFrame。

代码实现

import pandas as pd
import numpy as np

dico = {0: ['aa', 'bb', 'ee', np.nan, 'cc', np.nan, np.nan, np.nan, np.nan, 'REF A', 'REF B'],
        1: ['dd', 'REF A', 'REF B', np.nan, np.nan, np.nan, np.nan, 'jj', np.nan, np.nan, np.nan],
        2: ['ff', np.nan, np.nan, np.nan, np.nan, 'REF A', 'REF B', np.nan, np.nan, 'val7', 9393],
        3: [np.nan, 'val1', 123, 'kk', np.nan, np.nan, np.nan, np.nan, np.nan, 'ff', np.nan],
        4: [np.nan, np.nan, np.nan, np.nan, np.nan, 'val2', 4194, 'hh', np.nan, 'REF A', 'REF B'],
        5: ['REF A', 'REF B', 'REF A', 'REF B', np.nan, np.nan, np.nan, np.nan, np.nan, np.nan, np.nan],
        6: [np.nan, np.nan, np.nan, np.nan, np.nan, 'REF A', 'REF B', np.nan, np.nan, 'val6', 113],
        7: ['val3', 2334, 'val4', 4488, np.nan, np.nan, np.nan, np.nan, np.nan, np.nan, np.nan],
        8: [np.nan, np.nan, 'gg', np.nan, np.nan, 'val5', 773, np.nan, np.nan, 'ii', np.nan]}

df = pd.DataFrame(dico)

# 存储结果
result = []

# 遍历单元格定位有效REF配对
for r in range(df.shape[0]):
    for c in range(df.shape[1]-1):  # 预留一列给REF B
        if df.iloc[r, c] == 'REF A' and df.iloc[r, c+1] == 'REF B':
            # 向下取当前列第一个非空val
            val_col = df.iloc[r+1:, c].dropna()
            # 向下取右侧列第一个非空数值
            num_col = df.iloc[r+1:, c+1].dropna()
            if not val_col.empty and not num_col.empty:
                result.append({
                    'val': val_col.iloc[0],
                    'value': num_col.iloc[0]
                })

# 转换为结果DataFrame
final_df = pd.DataFrame(result)
print(final_df)

输出结果

运行后会得到对应6组标记的结果(顺序无要求):

val  value
0  val7   9393
1  val1    123
2  val2   4194
3  val3   2334
4  val4   4488
5  val5    773

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 20:55:23