diff --git a/src/agora/io/writer.py b/src/agora/io/writer.py
index bad7c19867dd067fa8e5db954065e62368da544c..71145f2f3d69cc2802fe81ebe55b1caba662e316 100644
--- a/src/agora/io/writer.py
+++ b/src/agora/io/writer.py
@@ -570,14 +570,15 @@ class Writer(BridgeH5):
 
                 # create dataset and write time points as columns
                 tp_path = path + "/timepoint"
-                f.create_dataset(
-                    name=tp_path,
-                    shape=(df.shape[1],),
-                    maxshape=(max_tps,),
-                    dtype="uint16",
-                )
-                tps = list(range(df.shape[1]))
-                f[tp_path][tps] = tps
+                if tp_path not in f:
+                    f.create_dataset(
+                        name=tp_path,
+                        shape=(df.shape[1],),
+                        maxshape=(max_tps,),
+                        dtype="uint16",
+                    )
+                    tps = list(range(df.shape[1]))
+                    f[tp_path][tps] = tps
             else:
                 f[path].attrs["columns"] = df.columns.tolist()
         else: