我有两个文件,它们有3个公共列-日期、关键字ID、AdGroupId。我想基于这些列合并这两个文件,这样对于第一个文件中具有特定日期、关键字ID、adgroupid的每一行,如果第二个文件中有具有相同日期、关键字ID、adgroupid的对应行,然后在第二个文件中追加其余的值,如果不追加,则在其余列中追加null或-
第一个文件(这里的df1)有5900000行。第二个文件大约有100000行。我使用了下面的代码
import pandas as pd
df1 = pd.read_csv(r"C:\Users\Rakshit Lal\Desktop\QVC Data\psnb_extract_daily\Final\cumulative_adwords_test.csv")
df2 = pd.read_csv(r"C:\Users\Rakshit Lal\Desktop\QVC Data\psnb_extract_daily\Final\Test_psnbfull.csv")
# Merge the two dataframes, using _ID column as key
df3 = pd.merge(df1, df2, on = ['Date', 'KeywordId', 'AdGroupId'])
df3.set_index('Date', inplace = True)
# Write it to a new CSV file
df3.to_csv('CSV3.csv')
# Write it to a new CSV file
df3.to_csv('CSV3.csv')
我的最后一个文件——csv3只包含605277行,因为某些原因,它应该包含5900000行(如文件1所示)。我相信我在使用合并函数时犯了一个错误。有人能帮我解决哪里出了问题,我应该修改什么吗
如果不指定合并方式,则需要进行内部联接,但实际上需要进行左联接。您可以使用“左”合并:
相关问题 更多 >
编程相关推荐