diff --git a/src/agora/io/signal.py b/src/agora/io/signal.py
index d3eea4ac0c220eedbdfd66ec02c0be38f5f53b0e..3cfc358f825a8e2719cb99afebc23920621898c6 100644
--- a/src/agora/io/signal.py
+++ b/src/agora/io/signal.py
@@ -329,19 +329,25 @@ class Signal(BridgeH5):
         assert path in f, f"{path} not in {f}"
 
         dset = f[path]
-        index_names = copy(self.index_names)
 
+        values, index, columns = ([], [], [])
+
+        index_names = copy(self.index_names)
         valid_names = [lbl for lbl in index_names if lbl in dset.keys()]
-        index = pd.MultiIndex.from_arrays(
-            [dset[lbl] for lbl in valid_names], names=valid_names
-        )
+        if valid_names:
+
+            index = pd.MultiIndex.from_arrays(
+                [dset[lbl] for lbl in valid_names], names=valid_names
+            )
+
+            columns = dset.attrs.get("columns", None)  # dset.attrs["columns"]
+            if "timepoint" in dset:
+                columns = f[path + "/timepoint"][()]
 
-        columns = dset.attrs.get("columns", None)  # dset.attrs["columns"]
-        if "timepoint" in dset:
-            columns = f[path + "/timepoint"][()]
+            values = f[path + "/values"][()]
 
         return pd.DataFrame(
-            f[path + "/values"][()],
+            values,
             index=index,
             columns=columns,
         )