fix(factors/engine): 修复列选择时基础列重复的问题
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -262,10 +262,11 @@ class DataRouter:
|
|||||||
if stock_codes is not None:
|
if stock_codes is not None:
|
||||||
df = df.filter(pl.col("ts_code").is_in(stock_codes))
|
df = df.filter(pl.col("ts_code").is_in(stock_codes))
|
||||||
|
|
||||||
# 选择需要的列
|
# 选择需要的列(避免重复)
|
||||||
select_cols = ["ts_code", "trade_date"] + [
|
base_cols = ["ts_code", "trade_date"]
|
||||||
c for c in columns if c in df.columns
|
extra_cols = [c for c in columns if c in df.columns and c not in base_cols]
|
||||||
]
|
select_cols = base_cols + extra_cols
|
||||||
|
|
||||||
return df.select(select_cols)
|
return df.select(select_cols)
|
||||||
|
|
||||||
def _load_from_database(
|
def _load_from_database(
|
||||||
@@ -314,10 +315,10 @@ class DataRouter:
|
|||||||
if col not in df.columns and col not in ["ts_code", "trade_date"]:
|
if col not in df.columns and col not in ["ts_code", "trade_date"]:
|
||||||
raise ValueError(f"表 {table_name} 缺少字段: {col}")
|
raise ValueError(f"表 {table_name} 缺少字段: {col}")
|
||||||
|
|
||||||
# 选择需要的列
|
# 选择需要的列(避免重复)
|
||||||
select_cols = ["ts_code", "trade_date"] + [
|
base_cols = ["ts_code", "trade_date"]
|
||||||
c for c in columns if c in df.columns
|
extra_cols = [c for c in columns if c in df.columns and c not in base_cols]
|
||||||
]
|
select_cols = base_cols + extra_cols
|
||||||
|
|
||||||
return df.select(select_cols)
|
return df.select(select_cols)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user