我有2个CSV
文件包含数千个数据。假设文件中的数据:
first.csv
:
filename | type | size
----------------------
A | doc | 8
A | doc | 10
B | pdf | 5
second.csv
:
filename | type | size
----------------------
A | doc | 8
A | doc | 10
C | jpg | 3
我需要基于多个列合并两个文件,即filename
和type
。从两个文件中的列size
的合并表中添加两个新列。将其保存到新的csv
文件中。因此,新表应为:
filename | type | size-1 | size-2
---------------------------------
A | doc | 8 | 8
A | doc | 10 | 10
B | pdf | 5 | 0
C | jpg | 0 | 3
我已经编写了代码:
ds1 = pd.read_csv('first.csv')
ds2 = pd.read_csv('second.csv')
data_merge = ds1.merge(ds2, on=['filename','type'],how='outer',suffixes=('-1','-2'))
data_merge.fillna(0, inplace=True)
data_merge = data_merge.reset_index(drop=True)
data_merge.to_csv('new.csv')
执行代码时,通过合并列A
中的每个值,我得到了新表,该表的数据size
重复了很多次。
filename | type | size-1 | size-2
---------------------------------
A | doc | 8 | 8
A | doc | 8 | 10
A | doc | 10 | 8
A | doc | 10 | 10
B | pdf | 5 | 0
C | jpg | 0 | 3
如何解决这个问题?谢谢。