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

使用pivot_wider转换非均匀类别DataFrame时数据错位问题求助

解决pivot_wider转换宽表后数据错位的问题

问题场景

通过爬虫获取的DataFrame,使用pivot_wider转换为宽表时出现数据错位,其中bains/douches列数据错位明显。核心原因是缺少唯一分组标识来匹配同一条记录的不同字段值,加上types列各唯一值出现次数不一致(例如price出现12次,étage出现6次),导致字段值无法正确对应。

转换前的DataFrame
转换后数据错位情况


解决方案

1. 添加唯一分组ID

爬虫抓取的数据通常按记录顺序排列,每条记录包含一组types字段。根据字段出现的规律生成分组ID,确保同一记录的所有字段归为同一组:

library(tidyverse)

# 假设每条记录包含固定数量的types值(比如3个,根据实际字段数量调整)
df <- df %>%
  mutate(group_id = floor((row_number() - 1) / 3)) # 利用行号生成分组ID

如果不确定每条记录的字段数量,可以先统计各types的出现次数,找到字段的重复周期;若存在字段缺失,需先清洗补全后再分组。

2. 带分组ID执行pivot_wider

以group_id作为分组依据,确保同一条记录的字段值正确匹配:

df_wide <- df %>%
  pivot_wider(
    id_cols = group_id,
    names_from = types,
    values_from = 你的值列名称 # 替换为存储字段值的实际列名
  )

额外建议

检查爬虫逻辑,确保抓取时每条记录的字段完整且顺序一致,从源头避免数据缺失或错位的问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 18:27:26