合并Excel表单不工作的pythonpandas

我试图合并两个Excel表使用常见的提交的序列,但抛出一些错误。 我的程序如下:

(user1_env)root@ubuntu:~/user1/test/compare_files# cat compare.py import pandas as pd source1_df = pd.read_excel('a.xlsx', sheetname='source1') source2_df = pd.read_excel('a.xlsx', sheetname='source2') joined_df = source1_df.join(source2_df, on='Serial') joined_df.to_excel('/root/user1/test/compare_files/result.xlsx') 

得到错误如下:

  (user1_env)root@ubuntu:~/user1/test/compare_files# python3.5 compare.py Traceback (most recent call last): File "compare.py", line 5, in <module> joined_df = source1_df.join(source2_df, on='Serial') File "/home/user1/miniconda3/envs/user1_env/lib/python3.5/site-packages/pandas/core/frame.py", line 4385, in join rsuffix=rsuffix, sort=sort) File "/home/user1/miniconda3/envs/user1_env/lib/python3.5/site-packages/pandas/core/frame.py", line 4399, in _join_compat suffixes=(lsuffix, rsuffix), sort=sort) File "/home/user1/miniconda3/envs/user1_env/lib/python3.5/site-packages/pandas/tools/merge.py", line 39, in merge return op.get_result() File "/home/user1/miniconda3/envs/user1_env/lib/python3.5/site-packages/pandas/tools/merge.py", line 223, in get_result rdata.items, rsuf) File "/home/user1/miniconda3/envs/user1_env/lib/python3.5/site-packages/pandas/core/internals.py", line 4445, in items_overlap_with_suffix to_rename) ValueError: columns overlap but no suffix specified: Index(['Serial'], dtype='object') 

我指的是下面的SO链接的问题: python比较两个Excel工作表并追加正确的logging

小修改为我工作,

 import pandas as pd source1_df = pd.read_excel('a.xlsx', sheetname='source1') source2_df = pd.read_excel('a.xlsx', sheetname='source2') joined_df = pd.merge(source1_df,source2_df,on='Serial',how='outer') joined_df.to_excel('/home/gk/test/result.xlsx') 

这是因为连接后的列名重叠。 您可以将索引设置为“ Serial并进行连接,也可以在join函数中指定rsuffix=lsuffix=值,以便将后缀值附加到公用列名称。