пример решения:
import pandas as pd
data = """
Timepoint,Col1,Col2,Col3,Col1,Col2,Col3
1,1,2,3,,,
2,4,5,6,,,
3,,,,7,8,9
4,,,,10,11,12
"""
df = pd.read_csv(pd.compat.StringIO(data), sep=',')
df.rename(columns=lambda x: x.split('.')[0], inplace=True)
print(df)
вывод:
Timepoint Col1 Col2 Col3 Col1 Col2 Col3
0 1 1.0 2.0 3.0 NaN NaN NaN
1 2 4.0 5.0 6.0 NaN NaN NaN
2 3 NaN NaN NaN 7.0 8.0 9.0
3 4 NaN NaN NaN 10.0 11.0 12.0
df = df.fillna(0)
print(df)
вывод:
Timepoint Col1 Col2 Col3 Col1 Col2 Col3
0 1 1.0 2.0 3.0 0.0 0.0 0.0
1 2 4.0 5.0 6.0 0.0 0.0 0.0
2 3 0.0 0.0 0.0 7.0 8.0 9.0
3 4 0.0 0.0 0.0 10.0 11.0 12.0
df = df.groupby(level=0, axis=1).sum()
print(df)
вывод:
Col1 Col2 Col3 Timepoint
0 1.0 2.0 3.0 1.0
1 4.0 5.0 6.0 2.0
2 7.0 8.0 9.0 3.0
3 10.0 11.0 12.0 4.0