pandas拼接带连续索引ID的DataFrame后删行及重编号问题咨询
方案1:拼接前直接截取df1非首行内容生成df2(推荐)
你要的从首行之后截取的需求可以直接用iloc索引实现,跳过df1的第一行再复制生成df2,拼接后无需额外处理就能直接得到符合要求的结果,代码修改如下:
import pandas as pd df1 = pd.DataFrame({ 'ID': [1,2,3], 'Name': ['Car1', 'Car2', 'Car3'], 'Number': [0,1,2] }) # 直接截取df1索引1及之后的行,跳过首行Car1 df2 = df1.iloc[1:].copy() df2['ID'] += len(df1) df2['Number'] += len(df1) final_df2 = pd.concat([df1, df2], ignore_index=True)
运行后final_df2就是你要的理想输出结果。
方案2:拼接完成后删除目标行再重置编号
如果已经完成拼接,可先删除重复的第二个Car1行,再重新生成连续的ID和Number列即可:
# 保留Name列第一次出现的行,删除第二次出现的Car1行 final_df2 = final_df2[~final_df2.duplicated(subset='Name', keep='first')].reset_index(drop=True) # 重置连续编号 final_df2['ID'] = range(1, len(final_df2)+1) final_df2['Number'] = range(len(final_df2))
内容的提问来源于stack exchange,提问作者JakeP
相关产品推荐
相关产品推荐

