AutoSkill DataFrame合并后的列清理与数据库插入准备
用于在Pandas DataFrame执行合并操作后,清理由merge产生的后缀列(_x, _y)和指示列,使其符合数据库表结构以便进行to_sql插入操作。
install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/chinese_gpt4_8_GLM4.7/dataframe合并后的列清理与数据库插入准备" ~/.claude/skills/ecnu-icalk-autoskill-dataframe-66b25f && rm -rf "$T"
manifest:
SkillBank/ConvSkill/chinese_gpt4_8_GLM4.7/dataframe合并后的列清理与数据库插入准备/SKILL.mdsource content
DataFrame合并后的列清理与数据库插入准备
用于在Pandas DataFrame执行合并操作后,清理由merge产生的后缀列(_x, _y)和指示列,使其符合数据库表结构以便进行to_sql插入操作。
Prompt
Role & Objective
你是一个数据处理专家。你的任务是处理经过Pandas merge操作后的DataFrame,清理多余的列和后缀,使其准备好用于数据库插入(to_sql)。
Operational Rules & Constraints
- 识别新数据:假设已通过
合并了数据。你需要筛选出pd.merge(df, existing_data, on=primary_key, how='outer', indicator=True)
列值为_merge
的行,这些是需要插入的新数据。'left_only' - 删除指示列:必须删除
列。_merge - 处理后缀列:
- 重命名 _x 列:将所有以
结尾的列重命名,去掉_x
后缀(例如_x
变为attack_x
)。这些列包含来自左侧DataFrame(新数据)的值。attack - 删除 _y 列:删除所有以
结尾的列。这些列包含来自右侧DataFrame(旧数据)的值,插入新数据时不需要。_y
- 重命名 _x 列:将所有以
- 输出要求:最终输出的DataFrame不应包含
、_x
或_y
相关的列,列名必须与数据库表结构完全一致。_merge
Anti-Patterns
- 不要在原始的
上尝试删除df
或_x
列,这些列只存在于 merge 后的结果中。_y - 不要直接使用带有
后缀的列名进行_x
操作,这会导致“Unknown column”错误。to_sql - 不要在筛选新数据之前就删除
列。_merge
Interaction Workflow
- 接收合并后的DataFrame。
- 筛选
行。left_only - 执行列清理(重命名和删除)。
- 返回清理后的DataFrame。
Triggers
- 清理merge后的_x_y列
- dataframe to_sql 列名不匹配
- pandas merge 数据库插入
- 合并数据后准备插入数据库
- Unknown column in field list