Since a tuple is returned, you can use this code
def add_ichi(self, tenkan: int = 9, kijun: int = 26, senkou: int = 52, offset: int = 26) -> None:
df_ichi = ta.ichimoku(self.df["high"], self.df["low"], self.df["close"], tenkan=tenkan, kijun=kijun, senkou=senkou, offset=offset)
df_ichi[0].columns = ["spanA", "spanB", "tenkan_sen", "kijun_sen", "chikou_span"]
df_ichi[1].columns = ["spanA_future", "spanB_future"]
self.df["spanA_future"] = df_ichi[1]["spanA_future"]
self.df["spanB_future"] = df_ichi[1]["spanB_future"]
For example, df_ichi[1]["spanA_future"]
- we move the data from tuple [1] to the Pandas dataframe column df["spanA_future"]