hiroki0008 commited on
Commit
bd5a765
·
verified ·
1 Parent(s): 1012ab1

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +14 -12
app.py CHANGED
@@ -97,21 +97,22 @@ def _clean_cell(x) -> str:
97
  def choose_names_from_multiindex(mi: pd.MultiIndex) -> list[str]:
98
  """
99
  3段ヘッダ(MultiIndex)から列名を選ぶ。
100
- ルール: 小分類(第3段)に値があればそれ、無ければ中分類(第2段)
101
- それも無ければ大分類(第1段)。すべて空なら 'col'
102
- 最後に重複を .1, .2… で解消。
103
  """
 
 
 
 
 
 
104
  names = []
105
  for tpl in mi:
106
- # tpl は (大, 中, 小) 想定
107
- if len(tpl) < 3:
108
- # 念のため不足時の安全対策
109
- a = _clean_cell(tpl[0]) if len(tpl) >= 1 else ""
110
- b = _clean_cell(tpl[1]) if len(tpl) >= 2 else ""
111
- c = ""
112
- else:
113
- a, b, c = (_clean_cell(tpl[0]), _clean_cell(tpl[1]), _clean_cell(tpl[2]))
114
- name = c or b or a or "col"
115
  names.append(name)
116
 
117
  # 重複解消
@@ -126,6 +127,7 @@ def choose_names_from_multiindex(mi: pd.MultiIndex) -> list[str]:
126
  out.append(f"{n}.{seen[n]}")
127
  return out
128
 
 
129
  # -------------------- 読み込みルール --------------------
130
  # 0行目は削除し、1/2/3行目をヘッダ(= header=[1,2,3])
131
  HEADER_ROWS = [1, 2, 3]
 
97
  def choose_names_from_multiindex(mi: pd.MultiIndex) -> list[str]:
98
  """
99
  3段ヘッダ(MultiIndex)から列名を選ぶ。
100
+ 優先順: 中分類(第2段) → 小分類(第3段) → 大分類(第1段)
101
+ すべて空なら 'col'。重複は .1, .2… を付与。
 
102
  """
103
+ def _clean_cell(x) -> str:
104
+ if x is None:
105
+ return ""
106
+ s = str(x).strip()
107
+ return "" if s.lower() == "nan" else s
108
+
109
  names = []
110
  for tpl in mi:
111
+ # tpl は (大, 中, 小) を想定
112
+ a = _clean_cell(tpl[0]) if len(tpl) >= 1 else ""
113
+ b = _clean_cell(tpl[1]) if len(tpl) >= 2 else ""
114
+ c = _clean_cell(tpl[2]) if len(tpl) >= 3 else ""
115
+ name = b or c or a or "col" # ★ 中 > 小 > 大
 
 
 
 
116
  names.append(name)
117
 
118
  # 重複解消
 
127
  out.append(f"{n}.{seen[n]}")
128
  return out
129
 
130
+
131
  # -------------------- 読み込みルール --------------------
132
  # 0行目は削除し、1/2/3行目をヘッダ(= header=[1,2,3])
133
  HEADER_ROWS = [1, 2, 3]