Python 在不知道有多少列的情况下合并列索引或命名列

Python 在不知道有多少列的情况下合并列索引或命名列,python,pandas,Python,Pandas,我不知道如何解决我遇到的问题。我想合并2个数据帧: show = pd.merge(df1, df2, how='left', on=0) 但由于每次调用函数时,两个数据帧都会发生很大变化,我不知道有多少列,所以无法命名它们。合并函数需要列名才能工作。我试图只提供列号,但不起作用: raise KeyError(key) KeyError: '0' 有没有什么方法可以不使用列名就合并数据帧。或者-有没有什么方法可以在不知道有多少列的情况下命名列 @jezrael它仍然显示一个错误: Trac

我不知道如何解决我遇到的问题。我想合并2个数据帧:

show = pd.merge(df1, df2, how='left', on=0)
但由于每次调用函数时,两个数据帧都会发生很大变化,我不知道有多少列,所以无法命名它们。合并函数需要列名才能工作。我试图只提供列号,但不起作用:

raise KeyError(key)
KeyError: '0'
有没有什么方法可以不使用列名就合并数据帧。或者-有没有什么方法可以在不知道有多少列的情况下命名列

@jezrael它仍然显示一个错误:

Traceback (most recent call last):
  File "C:/Users/Patryk/PycharmProjects/foliumtesting/main.py", line 49, in <module>
    main(files)
  File "C:/Users/Patryk/PycharmProjects/foliumtesting/main.py", line 23, in main
    show = pd.merge(poco_df, punkty, how='left', on=poco_df.columns[0])
  File "C:\Users\Patryk\AppData\Local\Programs\Python\Python38\lib\site-packages\pandas\core\reshape\merge.py", line 73, in merge
    op = _MergeOperation(
  File "C:\Users\Patryk\AppData\Local\Programs\Python\Python38\lib\site-packages\pandas\core\reshape\merge.py", line 627, in __init__
    ) = self._get_merge_keys()
  File "C:\Users\Patryk\AppData\Local\Programs\Python\Python38\lib\site-packages\pandas\core\reshape\merge.py", line 983, in _get_merge_keys
    right_keys.append(right._get_label_or_level_values(rk))
  File "C:\Users\Patryk\AppData\Local\Programs\Python\Python38\lib\site-packages\pandas\core\generic.py", line 1692, in _get_label_or_level_values
    raise KeyError(key)
KeyError: 0
回溯(最近一次呼叫最后一次):
文件“C:/Users/Patryk/PycharmProjects/foliumtesting/main.py”,第49行,在
主要(文件)
文件“C:/Users/Patryk/PycharmProjects/foliumtesting/main.py”,第23行,在main中
show=pd.merge(poco_-df,punkty,how='left',on=poco_-df.columns[0])
文件“C:\Users\Patryk\AppData\Local\Programs\Python\38\lib\site packages\pandas\core\reforme\merge.py”,合并中第73行
op=\u合并操作(
文件“C:\Users\Patryk\AppData\Local\Programs\Python\38\lib\site packages\pandas\core\reforme\merge.py”,第627行,在uu init中__
)=self.\u获取\u合并\u键()
文件“C:\Users\Patryk\AppData\Local\Programs\Python\38\lib\site packages\pandas\core\reforme\merge.py”,第983行,在"get\u merge"键中
右键。追加(右。获取标签或级别值(rk))
文件“C:\Users\Patryk\AppData\Local\Programs\Python\38\lib\site packages\pandas\core\generic.py”,第1692行,位于\u get\u label\u或\u level\u值中
升起钥匙错误(钥匙)
关键错误:0

您可以通过索引选择列名称,如下所示:

how = pd.merge(df1, df2, how='left', on=df1.columns[0])
如果需要按两个中的第一列合并:

how = pd.merge(df1, df2, how='left', left_on=df1.columns[0], right_on=df2.columns[0])
如果需要通过两个数据帧中的列的交点合并,请删除
on
参数:

how = pd.merge(df1, df2, how='left')

您可以通过索引选择列名称,如下所示:

how = pd.merge(df1, df2, how='left', on=df1.columns[0])
如果需要按两个中的第一列合并:

how = pd.merge(df1, df2, how='left', left_on=df1.columns[0], right_on=df2.columns[0])
如果需要通过两个数据帧中的列的交点合并,请删除
on
参数:

how = pd.merge(df1, df2, how='left')