如何将Pandas DataFrame索引修改为‘SQL+序号’格式?
Pandas修改DataFrame索引并拼接对比的实现方案
你的需求完全可以实现,之前用index.rename报错是因为用错了方法——index.rename是用来修改索引列的名称(比如给整个索引起个统一的名字),不是修改每个索引的具体值。
直接修改索引值的方法很简单:
- 处理SQL读取的DataFrame:
# 假设sql_df是从SQL读取的DataFrame sql_df.index = [f"SQL{i}" for i in sql_df.index] - 处理Snowflake导入的DataFrame:
# 假设snow_df是从Snowflake导入的DataFrame snow_df.index = [f"Snow{i}" for i in snow_df.index]
如果要拼接对比数据差异,推荐按列拼接(方便横向对比同位置的数据),用pd.concat指定axis=1并添加来源标识:
import pandas as pd compare_df = pd.concat([sql_df, snow_df], axis=1, keys=["SQL数据源", "Snowflake数据源"]) # 可选:筛选出存在差异的行 diff_rows = compare_df[compare_df.iloc[:, 0] != compare_df.iloc[:, 1]]
如果需要按行拼接(把两个数据集放在一起整体对比),直接执行pd.concat([sql_df, snow_df])即可,此时索引已经是带前缀的格式,不会混淆。
内容的提问来源于stack exchange,提问作者Patrick Fuller
相关产品推荐
相关产品推荐

