Python 左数据框时,为什么结果的列数少于左数据框

Python 左数据框时,为什么结果的列数少于左数据框,python,pandas,dataframe,merge,Python,Pandas,Dataframe,Merge,我正在做一个项目,有一次我需要左键连接两个数据帧:df和temp。 df大约有20列和47576行,而temp有4列和446829行;这两个数据帧必须在三列上连接(它们都共享)。 为了避免创建额外的行,我首先运行以下命令: temp = temp.drop_duplicates(subset=['A','B','C']) 然后,我将运行该函数的两个数据帧连接起来: df_1 = pd.merge(df, temp, how='left', left_on=['A','B','C

我正在做一个项目,有一次我需要左键连接两个数据帧:df和temp。 df大约有20列和47576行,而temp有4列和446829行;这两个数据帧必须在三列上连接(它们都共享)。 为了避免创建额外的行,我首先运行以下命令:

    temp = temp.drop_duplicates(subset=['A','B','C'])
然后,我将运行该函数的两个数据帧连接起来:

    df_1 = pd.merge(df, temp, how='left', left_on=['A','B','C']; right_on=['A','B','C'])
然后,我假设df_1数据帧的行数与df的行数完全相同(因为它不能有更多的行,因为我已经在temp中删除了重复的行;并且它不应该有更少的行,因为它是一个左连接)

但我看到,实际上df_1数据帧有30259行,比df数据帧的47576行少得多

这怎么可能


(同时,我认为这可能会有帮助,我在df数据框中填写了“A”、“B”、“C”列的Nan值,但似乎没有帮助)

如果您能提供一个最小的数据示例,那么回答您的问题就更容易了。但无论哪种方式,都可以尝试删除“left_on=”和“right_on=”并替换为“on=”。您还可以尝试使用以下语法查看是否得到不同的结果:
df\u 1=df.merge(temp,how='left',on=['a',B',C'])
如果您能提供一个最小的数据示例,那么回答您的问题就更容易了。但无论哪种方式,都可以尝试删除“left_on=”和“right_on=”并替换为“on=”。您还可以尝试使用以下语法查看是否得到不同的结果:
df\u 1=df.merge(temp,how='left',on=['a',B',C'])