iT邦幫忙

2023 iThome 鐵人賽

DAY 7
0
自我挑戰組

python-資料分析與機器學習系列 第 7

DAY7-資料分析的工具:pandas(練習)

  • 分享至 

  • xImage
  •  

#前言
學了兩天pandas的一些用法之後,讓我們來做一些練習吧!


練習一:
載入一個包含學生試卷分數的CSV文件,計算出每個學生的平均分數,並找到平均分數最高的學生。

import pandas as pd

# 創建包含學生試卷分數的DataFrame
data = {
    'Student': ['Student1', 'Student2', 'Student3', 'Student4', 'Student5'],
    'Score': [85, 92, 78, 88, 95]
}

df = pd.DataFrame(data)

# 將DataFrame保存為CSV文件
df.to_csv('student_scores.csv', index=False)

# 載入CSV文件
df = pd.read_csv('student_scores.csv') 

# 使用idxmax找出分數最高的學生
average_scores = df.loc[df['Score'].idxmax()]

print(f"分數最高的學生是:{average_scores['Student']},分數為:{average_scores['Score']}")

分數最高的學生是:Student5,分數為:95

練習二:
載入一個包含天氣數據的CSV文件,找出每個月的最高溫度和最低溫度的溫差,並列出當月溫差最大的值,最後找出哪個月份的溫差最大。

import pandas as pd
import random
from datetime import date, timedelta

# 建立日期範圍
start_date = date(2023, 1, 1)
end_date = date(2023, 12, 31)
date_range = [start_date + timedelta(days=i) for i in range((end_date - start_date).days + 1)]

# 建立最高溫度和最低溫度數據
max_tem = [random.randint(20,55) for _ in date_range]
min_tem = [random.randint(-10,20) for _ in date_range]

# 建立DataFrame
weather_data = pd.DataFrame({
    'Date': date_range,
    'Max Tem': max_temp,
    'Min Tem': min_temp
})

# 將DataFrame存為CSV文件
weather_data.to_csv('weather_data.csv', index=False)

# 載入CSV文件
df = pd.read_csv('weather_data.csv')

df['Date'] = pd.to_datetime(df['Date'])

# 找出每個月的最高溫度和最低溫度
df['Month'] = df['Date'].dt.month
monthly_temperature_diff = df.groupby('Month').apply(lambda group: group['Max Tem'].max() - group['Min Tem'].min())

# 找出溫差最大的月份和溫差
max_temp_diff_month = monthly_temperature_diff.idxmax()
max_temp_diff_value = monthly_temperature_diff[max_temp_diff_month]

# 印出每個月的最大溫差
for month, temp_diff in monthly_temperature_diff.items():
    print(f"{month}月的最大溫差為:{temp_diff} 度")
    
print(f"溫差最大的月份是:{max_temp_diff_month}月,溫差為:{max_temp_diff_value} 度")

1月的最大溫差為:80 度
2月的最大溫差為:83 度
3月的最大溫差為:82 度
4月的最大溫差為:85 度
5月的最大溫差為:79 度
6月的最大溫差為:81 度
7月的最大溫差為:85 度
8月的最大溫差為:82 度
9月的最大溫差為:84 度
10月的最大溫差為:84 度
11月的最大溫差為:84 度
12月的最大溫差為:84 度
溫差最大的月份是:4月,溫差為:85 度

pandas的練習就到這邊了喔。

---20230922---


上一篇
DAY6-資料分析的工具:pandas(DataFrame)
下一篇
DAY8-資料視覺化:折線圖
系列文
python-資料分析與機器學習30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言