Pandas Join方法报‘unexpected argument’错误,新手求助
Pandas join方法报错:unexpected argument 解决方法
错误原因
Pandas的join()方法不支持left_on和right_on参数,这两个参数是merge()方法的专属参数。join()默认基于两个DataFrame的索引进行合并,传入这两个参数会触发"unexpected argument"错误。
解决方法
方法一:改用merge()方法(推荐,适合按指定列合并)
如果你的需求是按TIME列做内连接,直接用merge()即可,它支持通过on参数指定合并列:
import pandas as pd df1 = pd.read_csv("sdvsdvsvsd.csv") df2 = pd.read_csv("dsvsdvdv.csv") # 两个表的合并列名相同,直接用on='TIME' df3 = df1.merge(df2, how='inner', on='TIME') # 若两个表的合并列名不同,才需要分开指定left_on和right_on,示例: # df3 = df1.merge(df2, how='inner', left_on='TIME_LEFT', right_on='TIME_RIGHT')
方法二:用join()的话,先将TIME列设为索引
join()是按索引合并的,所以需要先把两个DataFrame的索引设置为TIME列:
import pandas as pd df1 = pd.read_csv("sdvsdvsvsd.csv").set_index('TIME') df2 = pd.read_csv("dsvsdvdv.csv").set_index('TIME') # 按索引执行内连接 df3 = df1.join(df2, how='inner')
新手提示
日常合并数据时,merge()的灵活性更高,大部分按列合并的场景都能用;join()更适合已经把合并列设为索引的情况,记住这个区别就不会再搞混参数了。
内容的提问来源于stack exchange,提问作者kongiponki kongiponki
相关产品推荐
相关产品推荐

