File tree Expand file tree Collapse file tree
src/dartlab/providers/dart/docs/finance/segment Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -21,24 +21,39 @@ class SegmentTable:
2121 aligned : bool
2222
2323 def toDataFrame (self ) -> pl .DataFrame :
24- """테이블 → DataFrame (행=항목명, 열=부문/지역/제품)."""
24+ """테이블 → DataFrame (행=항목명, 열=부문/지역/제품).
25+
26+ 중복 컬럼명(연결/개별 반복) 처리: 접미사(_2, _3...) 부여.
27+ """
2528 import polars as pl
2629
2730 nCols = min (len (self .columns ), min (len (v ) for v in self .rows .values ()) if self .rows else 0 )
2831 if nCols == 0 :
2932 return pl .DataFrame ()
3033
31- data : dict [str , list ] = {"계정명" : []}
34+ # 중복 컬럼명에 접미사 부여
35+ uniqueCols : list [str ] = []
36+ seen : dict [str , int ] = {}
3237 for i in range (nCols ):
33- data [self .columns [i ]] = []
38+ name = self .columns [i ]
39+ if name in seen :
40+ seen [name ] += 1
41+ uniqueCols .append (f"{ name } _{ seen [name ]} " )
42+ else :
43+ seen [name ] = 1
44+ uniqueCols .append (name )
45+
46+ data : dict [str , list ] = {"계정명" : []}
47+ for col in uniqueCols :
48+ data [col ] = []
3449
3550 for name in self .order :
3651 vals = self .rows .get (name )
3752 if vals is None :
3853 continue
3954 data ["계정명" ].append (name )
4055 for i in range (nCols ):
41- data [self . columns [i ]].append (vals [i ] if i < len (vals ) else None )
56+ data [uniqueCols [i ]].append (vals [i ] if i < len (vals ) else None )
4257
4358 return pl .DataFrame (data )
4459
You can’t perform that action at this time.
0 commit comments