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:
|