Reinforcement-learning-with-tensorflow icon indicating copy to clipboard operation
Reinforcement-learning-with-tensorflow copied to clipboard

pandas==1.4.4 FutureWarning解决:关于'df.append' use 'pandas.concat' instead.

Open TysonSir opened this issue 2 years ago • 2 comments

pandas==1.4.4 FutureWarning解决

警告内容

Reinforcement-learning-with-tensorflow\contents\2_Q_Learning_maze\RL_brain.py:45: 
FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. 
Use pandas.concat instead.
  self.q_table = self.q_table.append(

原代码

    def check_state_exist(self, state):
        if state not in self.q_table.index:
            # append new state to q table
            self.q_table = self.q_table.append(
                pd.Series(
                    [0]*len(self.actions),
                    index=self.q_table.columns,
                    name=state,
                )
            )

新代码

    def check_state_exist(self, state):
        if state not in self.q_table.index:
            # append new state to q table
            self.q_table = pd.concat([self.q_table,
                pd.Series(
                    [0]*len(self.actions),
                    index=self.q_table.columns,
                    name=state,
                ).to_frame().T
            ])

TysonSir avatar Dec 21 '22 04:12 TysonSir

thanks a lot

L1zw avatar Oct 31 '23 13:10 L1zw

I use this code instead

def check_state_exist(self, state):
        if state not in self.q_table.index:
            # append new state to q table
            new_state = pd.DataFrame(
                [[0*i for i in range(len(self.actions))]],
                columns=self.q_table.columns,
                index=[state],
            )
            self.q_table = pd.concat([self.q_table, new_state], ignore_index=False)

ShuiYidi avatar Mar 16 '24 13:03 ShuiYidi