mirror of
https://github.com/microsoft/qlib.git
synced 2026-07-14 08:16:54 +08:00
fix SepDataFrame when we del it to empty (#1082)
This commit is contained in:
@@ -24,6 +24,10 @@ class SepDataFrame:
|
|||||||
SepDataFrame tries to act like a DataFrame whose column with multiindex
|
SepDataFrame tries to act like a DataFrame whose column with multiindex
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
# TODO:
|
||||||
|
# SepDataFrame try to behave like pandas dataframe, but it is still not them same
|
||||||
|
# Contributions are welcome to make it more complete.
|
||||||
|
|
||||||
def __init__(self, df_dict: Dict[str, pd.DataFrame], join: str, skip_align=False):
|
def __init__(self, df_dict: Dict[str, pd.DataFrame], join: str, skip_align=False):
|
||||||
"""
|
"""
|
||||||
initialize the data based on the dataframe dictionary
|
initialize the data based on the dataframe dictionary
|
||||||
@@ -77,7 +81,11 @@ class SepDataFrame:
|
|||||||
|
|
||||||
def _update_join(self):
|
def _update_join(self):
|
||||||
if self.join not in self:
|
if self.join not in self:
|
||||||
self.join = next(iter(self._df_dict.keys()))
|
if len(self._df_dict) > 0:
|
||||||
|
self.join = next(iter(self._df_dict.keys()))
|
||||||
|
else:
|
||||||
|
# NOTE: this will change the behavior of previous reindex when all the keys are empty
|
||||||
|
self.join = None
|
||||||
|
|
||||||
def __getitem__(self, item):
|
def __getitem__(self, item):
|
||||||
# TODO: behave more like pandas when multiindex
|
# TODO: behave more like pandas when multiindex
|
||||||
|
|||||||
@@ -47,8 +47,13 @@ class SepDF(unittest.TestCase):
|
|||||||
two -0.600639 -0.291694}
|
two -0.600639 -0.291694}
|
||||||
"""
|
"""
|
||||||
self.assertEqual(self.to_str(sdf._df_dict), self.to_str(exp))
|
self.assertEqual(self.to_str(sdf._df_dict), self.to_str(exp))
|
||||||
# self.assertEqual(self.to_str(data.tail()), self.to_str(res))
|
|
||||||
|
|
||||||
|
del df["g1"]
|
||||||
|
del df["g2"]
|
||||||
|
# it will not raise error, and df will be an empty dataframe
|
||||||
|
|
||||||
|
del sdf["g1"]
|
||||||
|
del sdf["g2"] # sdf should support deleting all the columns
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
|||||||
Reference in New Issue
Block a user