我确定我做错了什么但对我来说并不明显。
我想要加入许多数据帧。我正在使用pd.merge加入左连接,我这样做
Database=pd.merge(df1, df2, left_on='key', Right_on='key',how='left')
Database=pd.merge(df3, df4, left_on='key', Right_on='key',how='left')
重复但总是写回数据库数据帧,一切正常,但最后我有多个重复,即df1_code已经重复为df1_code_x,df1_code_x_x,这使得结果df非常大。我试过了;
Database.T.drop_duplicates().T
但这会导致cms内存错误,如何停止重复列的开头。
答案 0 :(得分:0)
我认为你不能避免重复,至少不能通过pd.merge
使用任何参数。
pd.DataFrame.drop_duplicates()
似乎正在删除重复的行。这就解释了为什么要转置和尝试drop_duplicates
。可能是在每次合并后使用它而不是在结束时使用它的想法?
另外,根据您的示例调用,您并不需要定义right_on
和left_on
个参数。两者似乎都是一样的,所以你可以保存自己的输入并将其调到:
Database = df1.merge(df2, how='left', on='key')
Database = df3.merge(df4, how='left', on='key')
...
我希望有帮助