Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -220,23 +220,35 @@ def load_data() -> pd.DataFrame:
|
|
220 |
# λ μ§ λ³ν μ ν λ°μ΄ν° μ νμΈ
|
221 |
before_date_convert = len(df)
|
222 |
|
223 |
-
#
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
|
|
228 |
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
|
|
|
|
|
|
|
|
233 |
# μμ λ§μ§λ§ λ λ‘ μ€μ
|
234 |
df["date"] = df["date"] + pd.offsets.MonthEnd(0)
|
|
|
|
|
235 |
else:
|
236 |
-
# μΌλ° λ³ν
|
237 |
df["date"] = pd.to_datetime(df["date"], errors="coerce")
|
|
|
|
|
|
|
|
|
|
|
|
|
238 |
except:
|
239 |
-
# μΌλ° λ³ν
|
240 |
df["date"] = pd.to_datetime(df["date"], errors="coerce")
|
241 |
|
242 |
# λ μ§ λ³ν ν λ°μ΄ν° νμΈ
|
@@ -261,7 +273,11 @@ def load_data() -> pd.DataFrame:
|
|
261 |
# λ°μ΄ν° μ 보 νμ
|
262 |
if len(df) > 0:
|
263 |
st.sidebar.write(f"μ΅μ’
λ°μ΄ν°: {len(df)}κ° ν")
|
264 |
-
|
|
|
|
|
|
|
|
|
265 |
st.sidebar.write(f"μ΄ νλͺ© μ: {df['item'].nunique()}")
|
266 |
st.sidebar.write(f"νλͺ©λ³ νκ· λ°μ΄ν° μ: {len(df)/df['item'].nunique():.1f}κ°")
|
267 |
else:
|
|
|
220 |
# λ μ§ λ³ν μ ν λ°μ΄ν° μ νμΈ
|
221 |
before_date_convert = len(df)
|
222 |
|
223 |
+
# YYYYMM νμ λ³ν (μ«μλ‘ μ μ₯λ κ²½μ°λ μ²λ¦¬)
|
224 |
+
try:
|
225 |
+
# λ°μ΄ν° νμ
νμΈ
|
226 |
+
if pd.api.types.is_integer_dtype(df["date"]):
|
227 |
+
# μ μν YYYYMMμ λ¬Έμμ΄λ‘ λ³ν ν μ²λ¦¬
|
228 |
+
df["date"] = df["date"].astype(str)
|
229 |
|
230 |
+
# λ¬Έμμ΄ νμ μ²λ¦¬
|
231 |
+
if pd.api.types.is_object_dtype(df["date"]):
|
232 |
+
# YYYYMM νμμΈμ§ νμΈ (6μ리 μ«μ)
|
233 |
+
if df["date"].str.match(r'^\d{6}$').all():
|
234 |
+
# μ°, μ ꡬλΆν΄μ datetimeμΌλ‘ λ³ν
|
235 |
+
df["year"] = df["date"].str[:4].astype(int)
|
236 |
+
df["month"] = df["date"].str[4:6].astype(int)
|
237 |
+
df["date"] = pd.to_datetime(dict(year=df["year"], month=df["month"], day=1))
|
238 |
# μμ λ§μ§λ§ λ λ‘ μ€μ
|
239 |
df["date"] = df["date"] + pd.offsets.MonthEnd(0)
|
240 |
+
# μμ μ»¬λΌ μμ
|
241 |
+
df.drop(columns=["year", "month"], inplace=True)
|
242 |
else:
|
243 |
+
# μΌλ° λ³ν μλ
|
244 |
df["date"] = pd.to_datetime(df["date"], errors="coerce")
|
245 |
+
except Exception as e:
|
246 |
+
st.sidebar.warning(f"λ μ§ λ³ν μ€λ₯: {str(e)}")
|
247 |
+
# μ΅νμ λ°©λ²μΌλ‘ λ€μ μλ
|
248 |
+
try:
|
249 |
+
df["date"] = pd.to_datetime(df["date"].astype(str), format="%Y%m", errors="coerce")
|
250 |
+
df["date"] = df["date"] + pd.offsets.MonthEnd(0)
|
251 |
except:
|
|
|
252 |
df["date"] = pd.to_datetime(df["date"], errors="coerce")
|
253 |
|
254 |
# λ μ§ λ³ν ν λ°μ΄ν° νμΈ
|
|
|
273 |
# λ°μ΄ν° μ 보 νμ
|
274 |
if len(df) > 0:
|
275 |
st.sidebar.write(f"μ΅μ’
λ°μ΄ν°: {len(df)}κ° ν")
|
276 |
+
# datetime νμμΈμ§ νμΈ
|
277 |
+
if pd.api.types.is_datetime64_dtype(df["date"]):
|
278 |
+
st.sidebar.write(f"λ°μ΄ν° λ μ§ λ²μ: {df['date'].min().strftime('%Y-%m-%d')} ~ {df['date'].max().strftime('%Y-%m-%d')}")
|
279 |
+
else:
|
280 |
+
st.sidebar.write(f"λ°μ΄ν° λ μ§ λ²μ: λ μ§ νμ λ³ν μ€ν¨. νμ¬ νμ: {type(df['date'].iloc[0])}")
|
281 |
st.sidebar.write(f"μ΄ νλͺ© μ: {df['item'].nunique()}")
|
282 |
st.sidebar.write(f"νλͺ©λ³ νκ· λ°μ΄ν° μ: {len(df)/df['item'].nunique():.1f}κ°")
|
283 |
else:
|