使用pandas DataFrame concat合并时碰到一个问题,整理一下发出来,希望有用
第一步:读取测试表格
import pandas as pd
df_1 = pd.DataFrame(pd.read_excel("测试表格.xlsx", engine='openpyxl'))
print(df_1)
表格信息
第二步:以测试表格为基础创建另一张表
df_2 = df_1
df_2['B列'] = df_2['B列'].map(str) + "_后缀"
print(df_2)
得到新表格如下
想使用concat得到如下信息
第三步:使用concat合并df_1和df_2
df_3 = pd.concat([df_1, df_2])
print(df_3)
结果如下
前5行明显错误,本该不应该有后缀的信息,被自动添加。
解决办法
在第二步复制表格1时,先重置索引
df_2 = df_1.reindex(columns=['A列', 'B列'])
df_2['B列'] = df_2['B列'].map(str) + "_后缀"
再使用concat合并即可得到目标表格
问题解决,完整代码如下
# -*- coding:utf-8 -*-
import pandas as pd
df_1 = pd.DataFrame(pd.read_excel("测试表格.xlsx", engine='openpyxl'))
# print(df_1)
df_2 = df_1.reindex(columns=['A列', 'B列'])
df_2['B列'] = df_2['B列'].map(str) + "_后缀"
# print(df_2)
df_3 = pd.concat([df_1, df_2])
print(df_3)
测试表格信息如图1