Pandas 熊猫使用多列连接

Pandas 熊猫使用多列连接,pandas,Pandas,得到如下数据帧,我正试图根据“文件日期”和“符号”将它们连接起来,这两个数据帧都是通用的 df_clean.head(100) File_date Symbol hv20 hv50 hv100 Date curiv Days Percentile Close Changed 4609 20180423 ZYNE 68 64 64.0 180423.0 65.86 430.0

得到如下数据帧,我正试图根据“文件日期”和“符号”将它们连接起来,这两个数据帧都是通用的

     df_clean.head(100)
              File_date Symbol hv20 hv50  hv100      Date  curiv    Days  Percentile  Close  Changed
        4609   20180423   ZYNE   68   64   64.0  180423.0  65.86   430.0        11.0  10.36        1

>>> df_clean.index
Int64Index([4609, 4611, 4608, 4606, 4603, 4600, 4609, 4607, 4604, 4604,
            ...
               0,    0,    0,    0,    0,    0,    0,    0,    0, 4617], dtype='int64', length=419721)





>>> df_allhv_to_date.head(100)
            hv5   hv10   dj20 Symbol
20180423  24.18  22.50  30.01      ZYNE

df_allhv_to_date.index
Int64Index([20171219, 20171220, 20171221, 20171222, 20171226, 20171227, 20171228, 20171229, 20180102, 20180103,
            ...
            20180410, 20180411, 20180412, 20180413, 20180416, 20180417, 20180418, 20180419, 20180420, 20180423], dtype='int64', length=425)
想要

File_date Symbol hv5   hv10   dj20 hv20 hv50  hv100      Date  curiv    Days  Percentile  Close  Changed

20180413   ZYNE  23.04  34.22  30.61  73   67   65.0  180413.0  79.87   424.0        48.0  10.17        0 
我试过了

df_for_sql = pd.merge(df_allhv_to_date , df_clean ,  how='left', left_on=['File_date','Symbol'], right_on = ['File_date','Symbol'])

但它不起作用。请问我错过了什么

您的问题是“df_allfv_to_date”中的日期数据在索引中。因此,我认为我们先命名索引,然后将数据移出索引并按如下方式连接这些列:

df_for_sql =  pd.merge(df_allhv_to_date.rename_axis('File_date', axis=0).reset_index(), 
                       df_clean,  
                       how='left', 
                       on = ['File_date','Symbol'])

尝试
df_for_sql=pd.merge(df_allhv_to_date.重命名_axis('File_date',axis=0).重置索引(),df_clean,how='left',left_on=['File_date','Symbol'],right_on=['File_date','Symbol'])
看起来在
df allhv_to_to_date中没有
列,因为它是一个索引列。您的加入是在值列上,而不是索引列上。@ScottBoston Holy Zarquon的歌唱鱼,专注于像冠军一样工作。哇!我喜欢你整洁地纠正文件日期问题的方式。太谢谢你了,我根本就没办法做到这一点。我不能把这个作为答案,因为我没有足够的分数。谢谢你,斯帕克well@sio2bagger我写了一个答案,并将代码压缩了一点。再次感谢@ScottBoston我现在正在处理整个问题,我不会发现这个问题。我的熊猫需要工作。再次感谢