У меня есть один большой df, отформатированный так:
df1 =
ID char
r1 foo
r2 foo
r5 bar
r9 bar
... ...
И еще один, еще больший, отформатированный так:
df2 =
ID a12 b23 c81 ...
r1 foo baz bar ...
r2 foo foo bar ...
r3 bar bar baz ...
r4 bar baz bar ...
... ... ... ...
Глядя на строку идентификатора в обоих df, я хочу собрать количество совпадений остальных столбцов. Поэтому для идентификатора r1
я смотрю на эту строку в df2 и вижу только совпадения a12
. Я хочу следить за каждым матчем, поэтому для первого ряда у меня будет
a12 1
b23 0
c81 0
Некоторые строки в df2 не имеют строки в df1 (в df2 есть строка r4
, а в df1 нет). Итого для этого примера будет:
a12 2
b23 1
c81 0
df1 - это CSV-файл, который можно загрузить в память, но df2 настолько велик, что я загружаю его порциями. Чтобы сравнить их, я бы загрузил их оба, а затем начал бы что-то вроде:
df1 = pd.read_csv("C:\\Users\\me\\df1.csv")
df2 = pd.read_table("C:\\Users\\me\\df2.vcf.gz", header = None, names = header_line, engine = 'c',
compression = 'gzip', chunksize = 40000, low_memory=False)
for chunk in df2: