Скорее всего, у вас есть дублированные date
значения.
Вот краткий пример:
# Generate dict of DatFrame with duplicated 'a'
d = dict()
for i in range(4):
d[i] = pd.DataFrame({'a': list('ABBCD'), 'b':np.random.randint(0, 10, 5), 'c': i})
n = len(d)
s = d[0]
for i in range(1,n):
s = s.merge(d[i], on="a")
print(s.shape)
(7, 5)
(11, 7)
(19, 9)
Повторный запуск без дубликатов:
d = dict()
for i in range(4):
d[i] = pd.DataFrame({'a': list('ABCDE'), 'b':np.random.randint(0, 10, 5), 'c': i})
n = len(d)
s = d[0]
for i in range(1,n):
s = s.merge(d[i], on="a")
print(s.shape)
(5, 5)
(5, 7)
(5, 9)
Объединение таким образом может привести к сложностям с названием вашей серии:
a b_x c_x b_y c_y b_x c_x b_y c_y
0 A 4 0 5 1 0 2 9 3
1 B 5 0 8 1 3 2 0 3
2 C 6 0 0 1 5 2 8 3
3 D 2 0 0 1 8 2 8 3
4 E 8 0 2 1 7 2 9 3
s['b_x']
b_x b_x
0 4 0
1 5 3
2 6 5
3 2 8
4 8 7