Spaces:
Runtime error
Runtime error
| # 1. ํ์ ํ์ฒ๋ฆฌ | |
| import pandas as pd | |
| def rearrange_csv(csv_path: str): | |
| """ | |
| CSV ํ์ผ์ ์ฝ์ด ์ด ์์๋ฅผ ๋ณ๊ฒฝํ๊ณ ์๋ณธ ํ์ผ์ ๋ฎ์ด์ฐ๊ธฐ ์ ์ฅํ๋ค. | |
| ๋ณ๊ฒฝ์ฌํญ: | |
| - NAME ๋ค์ ID ์ด ๋ฐฐ์น | |
| - ID โ TICKER ๋ก ์ปฌ๋ผ๋ช ๋ณ๊ฒฝ | |
| - ์๋ณธ csv_path์ ๋ฎ์ด์ฐ๊ธฐ | |
| """ | |
| # 1. CSV ์ฝ๊ธฐ | |
| df = pd.read_csv(csv_path) | |
| # 2. ID โ TICKER ๋ก ์ปฌ๋ผ๋ช ๋ณ๊ฒฝ | |
| df = df.rename(columns={"ID": "TICKER"}) | |
| # 3. NAME ๋ค์ TICKER ๋ฐฐ์น | |
| desired_order = ["NAME", "TICKER"] + [col for col in df.columns if col not in ["NAME", "TICKER"]] | |
| df = df[desired_order] | |
| # 4. ์๋ณธ ํ์ผ ๋ฎ์ด์ฐ๊ธฐ | |
| df.to_csv(csv_path, index=False, encoding="utf-8-sig") | |
| print(f"[์๋ฃ] ์ด ์์ ๋ณ๊ฒฝ ๋ฐ ์ ์ฅ ์๋ฃ โ {csv_path}") | |
| rearrange_csv("ETF.csv") | |
| # 2. COMPANY ์ด ํ๊ตญ์ด๋ก ๋ณ๊ฒฝ | |
| import pandas as pd | |
| from pykrx import stock | |
| def convert_company_to_korean(csv_path: str): | |
| df = pd.read_csv(csv_path) | |
| skipped_rows = [] # ๋ฌด์๋ row ์ ์ฒด ์ ์ฅ (์ถ๋ ฅ์ฉ) | |
| def get_korean_name(ticker: str): | |
| try: | |
| code = ticker.split(".")[0] | |
| name = stock.get_market_ticker_name(code) | |
| # pykrx ์กฐํ ์คํจ โ None ๋๋ ๋น ๋ฌธ์์ด | |
| if not isinstance(name, str) or name.strip() == "": | |
| return None | |
| return name | |
| except: | |
| return None | |
| # ์ COMPANY ๊ฐ ์์ฑ | |
| df["NEW_COMPANY"] = df["TICKER"].apply(get_korean_name) | |
| # ์๋ชป๋ row ์ถ์ถ | |
| skipped_df = df[df["NEW_COMPANY"].isna()] | |
| skipped_rows = skipped_df.to_dict(orient="records") | |
| # ์ ์ row๋ง ๋จ๊น | |
| df = df[df["NEW_COMPANY"].notna()].copy() | |
| # COMPANY ์ ๋ฐ์ดํธ | |
| df["COMPANY"] = df["NEW_COMPANY"] | |
| df.drop(columns=["NEW_COMPANY"], inplace=True) | |
| # CSV ์ ์ฅ | |
| df.to_csv(csv_path, index=False, encoding="utf-8-sig") | |
| print(f"[์๋ฃ] ํ๊ตญ์ด ๊ธฐ์ ๋ช ๋ณํ ์๋ฃ โ {csv_path}") | |
| # ๋ฌด์๋ ํ ์ถ๋ ฅ | |
| print(f"\n[๋ฌด์๋ ํ ๊ฐ์] {len(skipped_rows)}๊ฐ") | |
| if skipped_rows: | |
| print("[๋ฌด์๋ ๋ฐ์ดํฐ ๋ชฉ๋ก]") | |
| for idx, row in enumerate(skipped_rows, 1): | |
| print(f"{idx}. {row}") | |
| convert_company_to_korean("ETF.csv") |