๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
IT/Python

[Python] 1. ํฌํ•ญ์‹œ BIS ๊ตํ†ต์นด๋“œ ์‚ฌ์šฉ๋‚ด์—ญ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ (๊ตํ†ต๋ฐ์ดํ„ฐ ์ˆ˜์ง‘, ๊ฐ€๊ณต, ์‹œ๊ฐํ™”)

by ITyranno 2023. 12. 5.
728x90
๋ฐ˜์‘ํ˜•

 

 

 

 

 

 

 

 

 

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์„ธ๊ณ„๋ฅผ ํƒ๊ตฌํ•ฉ์‹œ๋‹ค.

 

 

 

 

 

 

2,3 ํŽธ์€ ์•„๋ž˜ ๊ฒŒ์‹œ๊ธ€ ์ฐธ๊ณ  ๋ฐ”๋ž๋‹ˆ๋‹ค.

 

 

2023.12.06 - [IT/Python] - [Python] 2. ํฌํ•ญ์‹œ BIS ๊ตํ†ต์นด๋“œ ์‚ฌ์šฉ๋‚ด์—ญ ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ ์‹œ๊ฐํ™” (ํžˆํŠธ๋งต heatmap)

 

[Python] 2. ํฌํ•ญ์‹œ BIS ๊ตํ†ต์นด๋“œ ์‚ฌ์šฉ๋‚ด์—ญ ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ ์‹œ๊ฐํ™” (ํžˆํŠธ๋งต heatmap)

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์„ธ๊ณ„๋ฅผ ํƒ๊ตฌํ•ฉ์‹œ๋‹ค. 1ํŽธ์€ ์•„๋ž˜ ๊ฒŒ์‹œ๊ธ€ ์ฐธ๊ณ  ๋ฐ”๋ž๋‹ˆ๋‹ค. 2023.12.05 - [IT/Python] - [Python] 1. ํฌํ•ญ์‹œ BIS ๊ตํ†ต์นด๋“œ ์‚ฌ์šฉ๋‚ด์—ญ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ (๊ตํ†ต๋ฐ์ดํ„ฐ ์ˆ˜์ง‘, ๊ฐ€๊ณต, ์‹œ๊ฐํ™”) [Python] 1. ํฌํ•ญ์‹œ BIS

ityranno.tistory.com

 

 

 

2023.12.07 - [IT/Python] - [Python] 3. ํฌํ•ญ์‹œ BIS ๊ตํ†ต์นด๋“œ ์‚ฌ์šฉ๋‚ด์—ญ ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ ์‹œ๊ฐํ™” (๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ํžˆ์Šคํ† ๊ทธ๋žจ, histplot)

 

[Python] 3. ํฌํ•ญ์‹œ BIS ๊ตํ†ต์นด๋“œ ์‚ฌ์šฉ๋‚ด์—ญ ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ ์‹œ๊ฐํ™” (๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ํžˆ์Šคํ† ๊ทธ๋žจ, histplot)

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์„ธ๊ณ„๋ฅผ ํƒ๊ตฌํ•ฉ์‹œ๋‹ค. 1,2ํŽธ์€ ์ด์ „ ๊ฒŒ์‹œ๊ธ€ ์ฐธ๊ณ  ๋ฐ”๋ž๋‹ˆ๋‹ค. 2023.12.05 - [IT/Python] - [Python] 1. ํฌํ•ญ์‹œ BIS ๊ตํ†ต์นด๋“œ ์‚ฌ์šฉ๋‚ด์—ญ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ (๊ตํ†ต๋ฐ์ดํ„ฐ ์ˆ˜์ง‘, ๊ฐ€๊ณต, ์‹œ๊ฐํ™”) [Python] 1. ํฌํ•ญ์‹œ BIS

ityranno.tistory.com

 

 

 

 

 

 

 

<  1. ํฌํ•ญ์‹œ BIS ๊ตํ†ต์นด๋“œ ์‚ฌ์šฉ๋‚ด์—ญ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘  >

 

 

 

 

<  ๋ถ„์„ ์ฃผ์ œ  >


 - ๋Œ€์ฃผ์ œ : ํฌํ•ญ์‹œ ๋ฒ„์Šค ์ด์šฉ๋Ÿ‰ ๋ถ„์„


 - ์†Œ์ฃผ์ œ

   (๋ฒ„์Šค ์ด์šฉ๋Ÿ‰ ๋ถ„์„)
   * ๊ธฐ์ค€์›” ๋ฐ ๊ธฐ์ค€์ผ์ž๋ณ„ ๋ฒ„์Šค ์ด์šฉ๋Ÿ‰ ๋ถ„์„ ๋น„๊ต
   * ๊ธฐ์ค€์ผ ๋ฐ ์‹œ๊ฐ„๋Œ€๋ณ„ ๋ฒ„์Šค ์ด์šฉ๋Ÿ‰ ๋ถ„์„ ๋น„๊ต
   * ๊ธฐ์ค€์‹œ๊ฐ„ ๋ฐ ์‹œ๊ฐ„(๋ถ„)๋ณ„ ๋ฒ„์Šค ์ด์šฉ๋Ÿ‰ ๋ถ„์„ ๋น„๊ต

   (๋ฒ„์Šค ๋‚ด ์ฒด๋ฅ˜์‹œ๊ฐ„ ๋ถ„์„)
   * ๊ธฐ์ค€์›” ๋ฐ ๊ธฐ์ค€์ผ์ž๋ณ„ ๋ฒ„์Šค ์ฒด๋ฅ˜์‹œ๊ฐ„ ๋ถ„์„ ๋น„๊ต
   * ๊ธฐ์ค€์ผ ๋ฐ ๊ธฐ์ค€์ผ์ž๋ณ„ ๋ฒ„์Šค ์ฒด๋ฅ˜์‹œ๊ฐ„ ๋ถ„์„ ๋น„๊ต
   * ๊ธฐ์ค€์‹œ๊ฐ„ ๋ฐ ์‹œ๊ฐ„(๋ถ„)๋ณ„ ๋ฒ„์Šค ์ฒด๋ฅ˜์‹œ๊ฐ„ ๋ถ„์„ ๋น„๊ต
   
   * ์Šนํ•˜์ฐจ์ •๋ฅ˜์žฅ ๊ตฌ๊ฐ„๋ณ„ ๋ฒ„์Šค ๋‚ด ์ฒด๋ฅ˜์‹œ๊ฐ„
    - ์ฒด๋ฅ˜์‹œ๊ฐ„(๋ถ„) ์ƒ์œ„ 30๊ฑด ๋ถ„์„ ๋น„๊ต

 


 

- URL : ๊ตญ๊ฐ€๊ตํ†ต ๋ฐ์ดํ„ฐ ์˜คํ”ˆ๋งˆ์ผ“

๊ตญ๊ฐ€๊ตํ†ต ๋ฐ์ดํ„ฐ ์˜คํ”ˆ๋งˆ์ผ“ (bigdata-transportation.kr)

 

๊ตญ๊ฐ€๊ตํ†ต ๋ฐ์ดํ„ฐ ์˜คํ”ˆ๋งˆ์ผ“

 

www.bigdata-transportation.kr

 

 

 

 

 

 

 

 

 

ํŒŒ์ผ ์ด๋ฆ„ ๋ณ€๊ฒฝ

 

 

 

 

 

๊ฐ๊ฐ ํŒŒ์ผ๋กœ ์••์ถ•์„ ํ’‰๋‹ˆ๋‹ค.

๋‹ค์šด๋กœ๋“œ๋ฐ›์€ ํŒŒ์ผ ์ค‘ ์ฒซ ๋ฒˆ์งธ ํŒŒ์ผ์˜ ์ด๋ฆ„ ๋’ค์— (0)์„ ๋ถ™์ž…๋‹ˆ๋‹ค.

 

 

 

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ •์˜

 

### ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ •์˜
import pandas as pd

 

 

 

 

<  ํ•œ ๊ฑด ์ƒ˜ํ”Œ๋งํ•˜๊ธฐ  >

 

 

 - ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํŒŒ์ผ ๋ฐ์ดํ„ฐ๋ฅผ ํ†ตํ•ฉํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š”
 - ํ•œ ๊ฐœ ํŒŒ์ผ์„ ๊ธฐ์ค€์œผ๋กœ ์‚ฌ์šฉํ•  ์ปฌ๋Ÿผ์„ ์ •์˜ํ•˜์—ฌ ๊ฐ€๊ณต ํ›„
 - ๋ฐ˜๋ณต ์ฒ˜๋ฆฌํ•˜๋ฉด ํŽธํ•ฉ๋‹ˆ๋‹ค.

 

 

 

0๋ฒˆ ํŒŒ์ผ์˜ csv ๋ฐ์ดํ„ฐ ์ฝ์–ด๋“ค์ด๊ธฐ

 

### 0๋ฒˆ ํŒŒ์ผ์˜ csv ๋ฐ์ดํ„ฐ ์ฝ์–ด๋“ค์ด๊ธฐ
# - ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„ ์ด๋ฆ„ : df_bus_cart_org

file_path = "./01_data/org/trfcard(0)/trfcard.csv"
df_bus_card_org = pd.read_csv(file_path)
df_bus_card_org

 

 

 

 

 

 

๊ฒฐ์ธก์น˜๊ฐ€ ์žˆ๋Š”์ง€ ์ •๋ณด ํ™•์ธํ•˜๊ธฐ

 

### ๊ฒฐ์ธก์น˜๊ฐ€ ์žˆ๋Š”์ง€ ์ •๋ณด ํ™•์ธํ•˜๊ธฐ
df_bus_card_org.info()

 

 

 

 

 

 

 

 

๊ธฐ์ดˆํ†ต๊ณ„ํ™•์ธ : ์ด์ƒ์น˜ ๋ฐ์ดํ„ฐ ํ™•์ธํ•˜๊ธฐ 

 

 

### ๊ธฐ์ดˆํ†ต๊ณ„ํ™•์ธ : ์ด์ƒ์น˜ ๋ฐ์ดํ„ฐ ํ™•์ธํ•˜๊ธฐ
df_bus_card_org.describe

 

 

 

 

 

 

 

<  ์˜๋ฌธ ์ปฌ๋Ÿผ๋ช…์„ ํ•œ๊ธ€๋กœ ์ˆ˜์ •ํ•˜๊ธฐ  >

 

 

 

๋ฉ”ํƒ€์ •์˜์„œ์˜ ์˜๋ฌธ๋ช…, ํ•œ๊ธ€๋ช… ์ปฌ๋Ÿผ ์ฝ์–ด๋“ค์ด๊ธฐ

 

### ๋ฉ”ํƒ€์ •์˜์„œ์˜ ์˜๋ฌธ๋ช…, ํ•œ๊ธ€๋ช… ์ปฌ๋Ÿผ ์ฝ์–ด๋“ค์ด๊ธฐ
# - ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„ ์ด๋ฆ„ : df_bus_cart_col_org
file_path = "./01_data/org/trfcard(0)/trfcard_columns.xlsx"
df_bus_card_col_org = pd.read_excel(file_path,
                                    header=2,
                                    usecols="B:C")
df_bus_card_col_org.head(1)

 

 

 

 

 

 

 

df_bus_cart_col_org์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋”•์…”๋„ˆ๋ฆฌ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ 

 

### ์ปฌ๋Ÿผ๋ช…์˜ ์ด๋ฆ„์„ ๋งคํ•‘ํ•˜์—ฌ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”
# - ์ปฌ๋Ÿผ๋ช…์˜ ๊ฐ’์„ key : value ๋”•์…”๋„ˆ๋ฆฌ ํƒ€์ž…์œผ๋กœ ์ •์˜ํ•ด์•ผ ํ•จ
# ์˜ˆ์‹œ : {์˜๋ฌธ๋ช… : ํ•œ๊ธ€๋ช…, ์˜๋ฌธ๋ช… : ํ•œ๊ธ€๋ช…....}
### df_bus_cart_col_org์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋”•์…”๋„ˆ๋ฆฌ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ
# - iloc[ํ–‰๋ฒˆํ˜ธ, ์—ด๋ฒˆํ˜ธ] : ์ธ๋ฑ์Šค ๋ฒˆํ˜ธ๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฐฉ์‹
print(df_bus_card_col_org.iloc[0, 0])
print(df_bus_card_col_org.iloc[0, 1])
print(df_bus_card_col_org.iloc[1, 0])
print(df_bus_card_col_org.iloc[1, 1])
print("-------------")

# - loc[ํ–‰๊ฐ’, ์—ด๊ฐ’] : ๋ˆˆ์— ๋ณด์ด๋Š” ์ธ๋ฑ์Šค ๊ฐ’์„ ์ด์šฉํ•˜๋Š” ๋ฐฉ์‹
print(df_bus_card_col_org.loc[0, "์ปฌ๋Ÿผ๋ช… (์˜๋ฌธ)" ])
print(df_bus_card_col_org.loc[0, "์ปฌ๋Ÿผ๋ช… (ํ•œ๊ธ€)" ])

 

 

 

 

 

 

 

 

 

df_bus_card_col_org ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์„ ๋”•์…”๋„ˆ๋ฆฌ๋กœ ๋ณ€ํ™˜  

 

### df_bus_card_col_org ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์„ ๋”•์…”๋„ˆ๋ฆฌ๋กœ ๋ณ€ํ™˜
# - ๋”•์…”๋„ˆ๋ฆฌ ๋ณ€์ˆ˜๋ช… : df_bus_card_col_new_dict
# - ์˜๋ฌธ๋ช…์€ key๋กœ, ํ•œ๊ธ€๋ช…์€ value๋กœ ๋งŒ๋“ค์–ด ์ฃผ์„ธ์š”.
# ์˜ˆ์‹œ : {'on_date" : '์Šน์ฐจ์‹œ๊ฐ', 'off-date' : 'ํ•˜์ฐจ์‹œ๊ฐ' ...}

# df_bus_cart_col_org ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์„ ๋”•์…”๋„ˆ๋ฆฌ๋กœ ๋ณ€ํ™˜
df_bus_card_col_new_dict = {}
for k, v in zip(df_bus_card_col_org.iloc[:, 0], df_bus_card_col_org.iloc[:, 1]) :
    # print(k, v)
    df_bus_card_col_new_dict[k] = v

df_bus_card_col_new_dict

 

 

 

 

 

 

์ปฌ๋Ÿผ๋ช… ๋ณ€๊ฒฝํ•˜๊ธฐ  

 

### ์ปฌ๋Ÿผ๋ช… ๋ณ€๊ฒฝํ•˜๊ธฐ
# df_bus_card_org = df_bus_card_org.rename(columns = df_bus_card_col_new_dict)
df_bus_card_org.rename(columns = df_bus_card_col_new_dict, inplace=True)

 

 

 

 

 

 

 

<  ๋ถ„์„ ์ฃผ์ œ  >

 

 - ๋Œ€์ฃผ์ œ : ํฌํ•ญ์‹œ ๋ฒ„์Šค ์ด์šฉ๋Ÿ‰ ๋ถ„์„
 - ์†Œ์ฃผ์ œ
   (๋ฒ„์Šค ์ด์šฉ๋Ÿ‰ ๋ถ„์„)
   * ๊ธฐ์ค€์›” ๋ฐ ๊ธฐ์ค€์ผ์ž๋ณ„ ๋ฒ„์Šค ์ด์šฉ๋Ÿ‰ ๋ถ„์„ ๋น„๊ต
   * ๊ธฐ์ค€์ผ ๋ฐ ์‹œ๊ฐ„๋Œ€๋ณ„ ๋ฒ„์Šค ์ด์šฉ๋Ÿ‰ ๋ถ„์„ ๋น„๊ต
   * ๊ธฐ์ค€์‹œ๊ฐ„ ๋ฐ ์‹œ๊ฐ„(๋ถ„)๋ณ„ ๋ฒ„์Šค ์ด์šฉ๋Ÿ‰ ๋ถ„์„ ๋น„๊ต

   (๋ฒ„์Šค ๋‚ด ์ฒด๋ฅ˜์‹œ๊ฐ„ ๋ถ„์„)
   * ๊ธฐ์ค€์›” ๋ฐ ๊ธฐ์ค€์ผ์ž๋ณ„ ๋ฒ„์Šค ์ฒด๋ฅ˜์‹œ๊ฐ„ ๋ถ„์„ ๋น„๊ต
   * ๊ธฐ์ค€์ผ ๋ฐ ๊ธฐ์ค€์ผ์ž๋ณ„ ๋ฒ„์Šค ์ฒด๋ฅ˜์‹œ๊ฐ„ ๋ถ„์„ ๋น„๊ต
   * ๊ธฐ์ค€์‹œ๊ฐ„ ๋ฐ ์‹œ๊ฐ„(๋ถ„)๋ณ„ ๋ฒ„์Šค ์ฒด๋ฅ˜์‹œ๊ฐ„ ๋ถ„์„ ๋น„๊ต
   
   * ์Šนํ•˜์ฐจ์ •๋ฅ˜์žฅ ๊ตฌ๊ฐ„๋ณ„ ๋ฒ„์Šค ๋‚ด ์ฒด๋ฅ˜์‹œ๊ฐ„
    - ์ฒด๋ฅ˜์‹œ๊ฐ„(๋ถ„) ์ƒ์œ„ 30๊ฑด ๋ถ„์„ ๋น„๊ต

 

 

 

 

<  ๋ถ„์„์„ ์œ„ํ•œ ๋ฐ์ดํ„ฐ ๊ฐ€๊ณตํ•˜๊ธฐ  >

 

 

 

์Šน์ฐจ์‹œ๊ฐ๊ณผ ํ•˜์ฐจ์‹œ๊ฐ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ

 

### ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„ ๋ณต์ œํ•˜๊ธฐ
df_bus_card_kor = df_bus_card_org.copy()

### ์Šน์ฐจ์‹œ๊ฐ๊ณผ ํ•˜์ฐจ์‹œ๊ฐ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ
# - astype() : ๋ฐ์ดํ„ฐ ํ˜•๋ณ€ํ™˜ ํ•จ์ˆ˜
df_bus_card_kor = df_bus_card_kor.astype({"์Šน์ฐจ์‹œ๊ฐ" : "str",
                                          "ํ•˜์ฐจ์‹œ๊ฐ" : "str"})
df_bus_card_kor.info()

 

 

 

 

 

 

 

๋ถ„์„์— ํ•„์š”ํ•œ ์ปฌ๋Ÿผ ์ถ”์ถœํ•˜๊ธฐ

 

### ๋ถ„์„์— ํ•„์š”ํ•œ ์ปฌ๋Ÿผ ์ถ”์ถœํ•˜๊ธฐ
df_bus_card = df_bus_card_kor[["์Šน์ฐจ์‹œ๊ฐ", "ํ•˜์ฐจ์‹œ๊ฐ", "์Šน๊ฐ์—ฐ๋ น", "ํ™˜์Šน์—ฌ๋ถ€",
                               "์ถ”๊ฐ€์šด์ž„์—ฌ๋ถ€", "์Šน์ฐจ์ •๋ฅ˜์žฅ", "ํ•˜์ฐจ์ •๋ฅ˜์žฅ"]].copy()
df_bus_card.head()

 

 

 

 

 

 

 

 

์Šน์ฐจ์‹œ๊ฐ๊ณผ ํ•˜์ฐจ์‹œ๊ฐ์˜ ๋ฐ์ดํ„ฐํƒ€์ž…์„ ๋‚ ์งœํƒ€์ž…์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ

 

 

### ์Šน์ฐจ์‹œ๊ฐ๊ณผ ํ•˜์ฐจ์‹œ๊ฐ์˜ ๋ฐ์ดํ„ฐํƒ€์ž…์„ ๋‚ ์งœํƒ€์ž…์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ
df_bus_card["์Šน์ฐจ์‹œ๊ฐ"] = pd.to_datetime(df_bus_card_kor.loc[:, "์Šน์ฐจ์‹œ๊ฐ"])
df_bus_card["ํ•˜์ฐจ์‹œ๊ฐ"] = pd.to_datetime(df_bus_card_kor.loc[:, "ํ•˜์ฐจ์‹œ๊ฐ"])
df_bus_card.info()

 

 

 

 

 

 

 

 

 

๋ฒ„์Šค ๋‚ด ์ฒด๋ฅ˜์‹œ๊ฐ„(๋ถ„๋‹จ์œ„) ์ปฌ๋Ÿผ๋งŒ๋“ค๊ธฐ

 

 

### ๋ฒ„์Šค ๋‚ด ์ฒด๋ฅ˜์‹œ๊ฐ„(๋ถ„๋‹จ์œ„) ์ปฌ๋Ÿผ๋งŒ๋“ค๊ธฐ
# - ์ปฌ๋Ÿผ๋ช… : ๋ฒ„์Šค๋‚ด์ฒด๋ฅ˜์‹œ๊ฐ„(๋ถ„)
round((df_bus_card.iloc[0, 1] - df_bus_card.iloc[0, 0]).total_seconds()/60,2)

 

 

 

 

 

 

 

 

 

์ฒด๋ฅ˜์‹œ๊ฐ„(๋ถ„) ๊ณ„์‚ฐ ๋ฐ ์ปฌ๋Ÿผ ์ƒ์„ฑ

 

df_bus_card["๋ฒ„์Šค๋‚ด์ฒด๋ฅ˜์‹œ๊ฐ„(๋ถ„)"] = round((df_bus_card["ํ•˜์ฐจ์‹œ๊ฐ"] - \
                                   df_bus_card["์Šน์ฐจ์‹œ๊ฐ"]).dt.total_seconds()/60,2)
df_bus_card

 

 

 

 

 

 

 

 

 

 

๊ธฐ์ค€๋…„๋„, ๊ธฐ์ค€์›”, ๊ธฐ์ค€์ผ, ๊ธฐ์ค€์‹œ๊ฐ„, ๊ธฐ์ค€์‹œ๊ฐ„(๋ถ„) ์ปฌ๋Ÿผ ์ƒ์„ฑํ•˜๊ธฐ

 

 

### ๊ธฐ์ค€๋…„๋„, ๊ธฐ์ค€์›”, ๊ธฐ์ค€์ผ, ๊ธฐ์ค€์‹œ๊ฐ„, ๊ธฐ์ค€์‹œ๊ฐ„(๋ถ„) ์ปฌ๋Ÿผ ์ƒ์„ฑํ•˜๊ธฐ
# - ๊ธฐ์ค€๋…„๋„
df_bus_card["๊ธฐ์ค€๋…„๋„"] = df_bus_card["์Šน์ฐจ์‹œ๊ฐ"].dt.year
# - ๊ธฐ์ค€์›”
df_bus_card["๊ธฐ์ค€์›”"] = df_bus_card["์Šน์ฐจ์‹œ๊ฐ"].dt.month
# - ๊ธฐ์ค€์ผ
df_bus_card["๊ธฐ์ค€์ผ"] = df_bus_card["์Šน์ฐจ์‹œ๊ฐ"].dt.day
# - ๊ธฐ์ค€์‹œ๊ฐ„
df_bus_card["๊ธฐ์ค€์‹œ๊ฐ„"] = df_bus_card["์Šน์ฐจ์‹œ๊ฐ"].dt.hour
# - ๊ธฐ์ค€์‹œ๊ฐ„(๋ถ„)
df_bus_card["๊ธฐ์ค€์‹œ๊ฐ„(๋ถ„)"] = df_bus_card["์Šน์ฐจ์‹œ๊ฐ"].dt.minute

 

 

 

 

 

 

 

 

 

 

<  ํฌํ•ญ์‹œ BIS ๊ตํ†ต์นด๋“œ ์‚ฌ์šฉ๋‚ด์—ญ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘  >

 

 

 

๋ถ„์„ ์ฃผ์ œ

 


 - ๋Œ€์ฃผ์ œ : ํฌํ•ญ์‹œ ๋ฒ„์Šค ์ด์šฉ๋Ÿ‰ ๋ถ„์„


 - ์†Œ์ฃผ์ œ

   (๋ฒ„์Šค ์ด์šฉ๋Ÿ‰ ๋ถ„์„)
   * ๊ธฐ์ค€์›” ๋ฐ ๊ธฐ์ค€์ผ์ž๋ณ„ ๋ฒ„์Šค ์ด์šฉ๋Ÿ‰ ๋ถ„์„ ๋น„๊ต
   * ๊ธฐ์ค€์ผ ๋ฐ ์‹œ๊ฐ„๋Œ€๋ณ„ ๋ฒ„์Šค ์ด์šฉ๋Ÿ‰ ๋ถ„์„ ๋น„๊ต
   * ๊ธฐ์ค€์‹œ๊ฐ„ ๋ฐ ์‹œ๊ฐ„(๋ถ„)๋ณ„ ๋ฒ„์Šค ์ด์šฉ๋Ÿ‰ ๋ถ„์„ ๋น„๊ต

   (๋ฒ„์Šค ๋‚ด ์ฒด๋ฅ˜์‹œ๊ฐ„ ๋ถ„์„)
   * ๊ธฐ์ค€์›” ๋ฐ ๊ธฐ์ค€์ผ์ž๋ณ„ ๋ฒ„์Šค ์ฒด๋ฅ˜์‹œ๊ฐ„ ๋ถ„์„ ๋น„๊ต
   * ๊ธฐ์ค€์ผ ๋ฐ ๊ธฐ์ค€์ผ์ž๋ณ„ ๋ฒ„์Šค ์ฒด๋ฅ˜์‹œ๊ฐ„ ๋ถ„์„ ๋น„๊ต
   * ๊ธฐ์ค€์‹œ๊ฐ„ ๋ฐ ์‹œ๊ฐ„(๋ถ„)๋ณ„ ๋ฒ„์Šค ์ฒด๋ฅ˜์‹œ๊ฐ„ ๋ถ„์„ ๋น„๊ต
   
   * ์Šนํ•˜์ฐจ์ •๋ฅ˜์žฅ ๊ตฌ๊ฐ„๋ณ„ ๋ฒ„์Šค ๋‚ด ์ฒด๋ฅ˜์‹œ๊ฐ„
    - ์ฒด๋ฅ˜์‹œ๊ฐ„(๋ถ„) ์ƒ์œ„ 30๊ฑด ๋ถ„์„ ๋น„๊ต

 


 

- URL : ๊ตญ๊ฐ€๊ตํ†ต ๋ฐ์ดํ„ฐ ์˜คํ”ˆ๋งˆ์ผ“

๊ตญ๊ฐ€๊ตํ†ต ๋ฐ์ดํ„ฐ ์˜คํ”ˆ๋งˆ์ผ“ (bigdata-transportation.kr)

 

๊ตญ๊ฐ€๊ตํ†ต ๋ฐ์ดํ„ฐ ์˜คํ”ˆ๋งˆ์ผ“

 

www.bigdata-transportation.kr

 

 

 

 

 

 

์ „์ฒด ํŒŒ์ผ ํ†ตํ•ฉํ•˜๊ธฐ 

 

 

 

 ์ด์ „ ๊ฒŒ์‹œ๊ธ€ ํ•œ ๊ฑด ์ƒ˜ํ”Œ ํ”„๋กœ์„ธ์Šค๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ „์ฒด ํŒŒ์ผ ํ†ตํ•ฉํ•˜๊ธฐ  ]

 

 

### ์ตœ์ข… ํ†ตํ•ฉ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„ ์ด๋ฆ„ : df_bus_card_tot

from datetime import datetime

 

 

### ํ†ตํ•ฉ ์‹œ์ž‘ ์‹œ๊ฐ„
start_date = datetime.today().strftime("%Y-%m-%d %H:%M:%S")


# Initialize an empty DataFrame to store the concatenated data
df_bus_card_tot = pd.DataFrame()

# 0~79๊นŒ์ง€ ํด๋”์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ๋ฐ˜๋ณต ์ˆ˜ํ–‰
for i in range(0, 80, 1) :
   ### 0๋ฒˆ ํŒŒ์ผ์˜ csv ๋ฐ์ดํ„ฐ ์ฝ์–ด๋“ค์ด๊ธฐ
   # - ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„ ์ด๋ฆ„ : df_bus_cart_org

    file_path = f"./01_data/org/trfcard({i})/trfcard.csv"
    df_bus_card_org = pd.read_csv(file_path)

   # print(i, " / ", len(df_bus_card_org))
    ### ๋ฉ”ํƒ€์ •์˜์„œ์˜ ์˜๋ฌธ๋ช…, ํ•œ๊ธ€๋ช… ์ปฌ๋Ÿผ ์ฝ์–ด๋“ค์ด๊ธฐ
    # - ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„ ์ด๋ฆ„ : df_bus_cart_col_org
    file_path = f"./01_data/org/trfcard({i})/trfcard_columns.xlsx"
    df_bus_card_col_org = pd.read_excel(file_path,
                                        header=2,
                                        usecols="B:C")
   # print(i, "/", len(df_bus_card_col_org))

        ### df_bus_card_col_org ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์„ ๋”•์…”๋„ˆ๋ฆฌ๋กœ ๋ณ€ํ™˜
    # - ๋”•์…”๋„ˆ๋ฆฌ ๋ณ€์ˆ˜๋ช… : df_bus_card_col_new_dict
    # - ์˜๋ฌธ๋ช…์€ key๋กœ, ํ•œ๊ธ€๋ช…์€ value๋กœ ๋งŒ๋“ค์–ด ์ฃผ์„ธ์š”.
    # ์˜ˆ์‹œ : {'on_date" : '์Šน์ฐจ์‹œ๊ฐ', 'off-date' : 'ํ•˜์ฐจ์‹œ๊ฐ' ...}
    
    # df_bus_cart_col_org ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์„ ๋”•์…”๋„ˆ๋ฆฌ๋กœ ๋ณ€ํ™˜
    df_bus_card_col_new_dict = {}
    for k, v in zip(df_bus_card_col_org.iloc[:, 0], df_bus_card_col_org.iloc[:, 1]) :
        # print(k, v)
        df_bus_card_col_new_dict[k] = v    
    
        ### ์ปฌ๋Ÿผ๋ช… ๋ณ€๊ฒฝํ•˜๊ธฐ
    # df_bus_card_org = df_bus_card_org.rename(columns = df_bus_card_col_new_dict)
    df_bus_card_org.rename(columns = df_bus_card_col_new_dict, inplace=True)

    ### ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„ ๋ณต์ œํ•˜๊ธฐ
    df_bus_card_kor = df_bus_card_org.copy()
    
    ### ์Šน์ฐจ์‹œ๊ฐ๊ณผ ํ•˜์ฐจ์‹œ๊ฐ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ
    # - astype() : ๋ฐ์ดํ„ฐ ํ˜•๋ณ€ํ™˜ ํ•จ์ˆ˜
    df_bus_card_kor = df_bus_card_kor.astype({"์Šน์ฐจ์‹œ๊ฐ" : "str",
                                              "ํ•˜์ฐจ์‹œ๊ฐ" : "str"})

    ### ๋ถ„์„์— ํ•„์š”ํ•œ ์ปฌ๋Ÿผ ์ถ”์ถœํ•˜๊ธฐ
    df_bus_card = df_bus_card_kor[["์Šน์ฐจ์‹œ๊ฐ", "ํ•˜์ฐจ์‹œ๊ฐ", "์Šน๊ฐ์—ฐ๋ น", "ํ™˜์Šน์—ฌ๋ถ€",
                                   "์ถ”๊ฐ€์šด์ž„์—ฌ๋ถ€", "์Šน์ฐจ์ •๋ฅ˜์žฅ", "ํ•˜์ฐจ์ •๋ฅ˜์žฅ"]].copy()

    ### ์Šน์ฐจ์‹œ๊ฐ๊ณผ ํ•˜์ฐจ์‹œ๊ฐ์˜ ๋ฐ์ดํ„ฐํƒ€์ž…์„ ๋‚ ์งœํƒ€์ž…์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ
    df_bus_card["์Šน์ฐจ์‹œ๊ฐ"] = pd.to_datetime(df_bus_card_kor.loc[:, "์Šน์ฐจ์‹œ๊ฐ"])
    df_bus_card["ํ•˜์ฐจ์‹œ๊ฐ"] = pd.to_datetime(df_bus_card_kor.loc[:, "ํ•˜์ฐจ์‹œ๊ฐ"])

    ### ์ฒด๋ฅ˜์‹œ๊ฐ„(๋ถ„) ๊ณ„์‚ฐ ๋ฐ ์ปฌ๋Ÿผ ์ƒ์„ฑ
    df_bus_card["๋ฒ„์Šค๋‚ด์ฒด๋ฅ˜์‹œ๊ฐ„(๋ถ„)"] = round((df_bus_card["ํ•˜์ฐจ์‹œ๊ฐ"] - \
                                       df_bus_card["์Šน์ฐจ์‹œ๊ฐ"]).dt.total_seconds()/60,2)

    ### ๊ธฐ์ค€๋…„๋„, ๊ธฐ์ค€์›”, ๊ธฐ์ค€์ผ, ๊ธฐ์ค€์‹œ๊ฐ„, ๊ธฐ์ค€์‹œ๊ฐ„(๋ถ„) ์ปฌ๋Ÿผ ์ƒ์„ฑํ•˜๊ธฐ
    # - ๊ธฐ์ค€๋…„๋„
    df_bus_card["๊ธฐ์ค€๋…„๋„"] = df_bus_card["์Šน์ฐจ์‹œ๊ฐ"].dt.year
    # - ๊ธฐ์ค€์›”
    df_bus_card["๊ธฐ์ค€์›”"] = df_bus_card["์Šน์ฐจ์‹œ๊ฐ"].dt.month
    # - ๊ธฐ์ค€์ผ
    df_bus_card["๊ธฐ์ค€์ผ"] = df_bus_card["์Šน์ฐจ์‹œ๊ฐ"].dt.day
    # - ๊ธฐ์ค€์‹œ๊ฐ„
    df_bus_card["๊ธฐ์ค€์‹œ๊ฐ„"] = df_bus_card["์Šน์ฐจ์‹œ๊ฐ"].dt.hour
    # - ๊ธฐ์ค€์‹œ๊ฐ„(๋ถ„)
    df_bus_card["๊ธฐ์ค€์‹œ๊ฐ„(๋ถ„)"] = df_bus_card["์Šน์ฐจ์‹œ๊ฐ"].dt.minute

    # print(f"{i} / {len(df_bus_card)}")

    df_bus_card_tot = pd.concat([df_bus_card_tot, df_bus_card], 
                                axis=0, ignore_index=True)


### ํ†ตํ•ฉ ์ข…๋ฃŒ ์‹œ๊ฐ„
end_date = datetime.today().strftime("%Y-%m-%d %H:%M:%S")

print(f"์ „์ฒด ์‹คํ–‰ ์‹œ๊ฐ„ ==> {start_date} ~ {end_date}")
print(f"df_bus_card_tot ==? {len(df_bus_card_tot)}")

 

 

### ์ตœ์ข… ๊ฒฐ๊ณผ ํ™•์ธํ•˜๊ธฐ : ์ธ๋ฑ์Šค ๋ฒˆํ˜ธ ํ™•์ธ
df_bus_card_tot

 

 

 

 

 

 

 

 

 

 

ํ†ตํ•ฉ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„ ์ €์žฅ์‹œํ‚ค๊ธฐ

 

 

์ €์žฅ ํŒŒ์ผ ์œ„์น˜ : all ํด๋”
์ €์žฅ ํŒŒ์ผ ๋ช…    : ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„ ๋ณ€์ˆ˜๋ช…๊ณผ ๋™์ผํ•˜๊ฒŒ
ํ™•์žฅ์ž              : csv

 

 

# ์ €์žฅ ํŒŒ์ผ ์œ„์น˜ ๋ฐ ํŒŒ์ผ๋ช… ์„ค์ •
save_path = "./01_data/all/df_bus_card_tot.csv"

# df_bus_card_tot ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์„ CSV ํŒŒ์ผ๋กœ ์ €์žฅ
df_bus_card_tot.to_csv(save_path, index=False)

print(f"๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์ด ์„ฑ๊ณต์ ์œผ๋กœ ์ €์žฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ ๊ฒฝ๋กœ: {save_path}")

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
๋ฐ˜์‘ํ˜•

'IT > Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Python] 3. ํฌํ•ญ์‹œ BIS ๊ตํ†ต์นด๋“œ ์‚ฌ์šฉ๋‚ด์—ญ ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ ์‹œ๊ฐํ™” (๋ง‰๋Œ€๊ทธ๋ž˜ํ”„ ํžˆ์Šคํ† ๊ทธ๋žจ, histplot)  (2) 2023.12.07
[Python] 2. ํฌํ•ญ์‹œ BIS ๊ตํ†ต์นด๋“œ ์‚ฌ์šฉ๋‚ด์—ญ ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ ์‹œ๊ฐํ™” (ํžˆํŠธ๋งต heatmap)  (1) 2023.12.06
[Python] 3. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ”์— ์ €์žฅํ•˜๊ธฐ (ํ•œ๊ตญ์ „๋ ฅ๊ฑฐ๋ž˜์†Œ ์‹œ๊ฐ„๋ณ„ ์ „๋ ฅ์ˆ˜์š”๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘, Python-mariaDB ์—ฐ๊ฒฐ, ๋ฐ์ดํ„ฐ ๋žญ๊ธ€๋ง)  (4) 2023.12.04
[Python] 2. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ”์— ์ €์žฅํ•˜๊ธฐ (ํ•œ๊ตญ์ „๋ ฅ๊ฑฐ๋ž˜์†Œ ์‹œ๊ฐ„๋ณ„ ์ „๋ ฅ์ˆ˜์š”๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘, Python-mariaDB ์—ฐ๊ฒฐ, ๋ฐ์ดํ„ฐ ๋žญ๊ธ€๋ง)  (4) 2023.12.02
[Python] 1. ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ํ•˜๊ธฐ (ํ•œ๊ตญ์ „๋ ฅ๊ฑฐ๋ž˜์†Œ ์‹œ๊ฐ„๋ณ„ ์ „๋ ฅ์ˆ˜์š”๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘, ๋ฐ์ดํ„ฐ ๋žญ๊ธ€๋ง)  (6) 2023.12.01

loading