2023年7月16日 星期日

用Pandas來操作百香果交易資料快速又方便

 pandas是一個強大的Python數據分析工具,提供了高效的數據結構和數據操作功能。它被廣泛應用於數據清理、數據轉換、數據分析和數據可視化等領域。

pandas引入了兩種主要的數據結構:Series和DataFrame。

Series是一維的數據結構,類似於帶有標籤的數組,可以容納不同類型的數據。Series提供了方便的索引和選取功能,使得數據操作更加靈活。

DataFrame是二維的數據結構,類似於表格或Excel中的數據。它由多個Series對象組成,每個Series對象代表一列。DataFrame提供了豐富的方法和函數,用於對數據進行操作、過濾、合併和分析。

pandas還提供了許多方便的功能,例如數據的加載和保存、數據的聚合和統計分析、數據的缺失值處理、時間序列數據處理等。

使用pandas,你可以快速載入數據集,對數據進行清理和預處理,進行數據操作和計算,並進行可視化呈現和報告生成。

總結來說,pandas是一個重要且強大的Python數據分析工具,為數據科學家和分析師提供了便利的數據處理和操作能力,幫助他們更高效地進行數據分析和探索。

資料集來源:https://amis.afa.gov.tw/m_fruit/FruitChartProdTransPriceVolumeTrend.aspx

百香果代碼是50和51

下載後,檔名:水果產品交易價量走勢圖資料.ods,檔案內容如下:

把前二列刪除:


注意:記得把資料集的檔案和Python程式檔案放在同一個目錄。

範例一:取出前五筆資料

1
2
3
4
5
6
7
import pandas as pd

# 讀取ODS文件
data = pd.read_excel('水果產品交易價量走勢圖資料.ods', engine='odf')

# 顯示前5行數據
print(data.head())

執行結果:
        交易日期        平均價      交易量
0  112/07/01  53.670853  52451.5
1  112/07/02  52.212767  45936.6
2  112/07/04  50.822808  66436.0
3  112/07/05  46.760777  52604.5
4  112/07/06  46.299146  56520.7

範例二:選擇特定列

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
import pandas as pd

# 讀取ODS文件
data = pd.read_excel('水果產品交易價量走勢圖資料.ods', engine='odf')

# 選擇"交易日期"和"平均價"列
selected_data = data[['交易日期', '平均價']]

# 顯示前5行選擇的數據
print(selected_data.head())

執行結果:
        交易日期        平均價
0  112/07/01  53.670853
1  112/07/02  52.212767
2  112/07/04  50.822808
3  112/07/05  46.760777
4  112/07/06  46.299146

範例三:條件過濾
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
import pandas as pd

# 讀取ODS文件
data = pd.read_excel('水果產品交易價量走勢圖資料.ods', engine='odf')

# 選擇平均價大於50的數據
filtered_data = data[data['平均價'] > 50]

# 顯示過濾後的數據
print(filtered_data)

執行結果:
        交易日期        平均價      交易量
0  112/07/01  53.670853  52451.5
1  112/07/02  52.212767  45936.6
2  112/07/04  50.822808  66436.0

範例四:計算統計數據
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
import pandas as pd

# 讀取ODS文件
data = pd.read_excel('水果產品交易價量走勢圖資料.ods', engine='odf')

# 計算平均價的平均值
average_price = data['平均價'].mean()

# 計算交易量的總和
total_volume = data['交易量'].sum()

# 顯示統計數據
print('平均價的平均值:', average_price)
print('交易量的總和:', total_volume)

執行結果:
平均價的平均值: 46.06091497677586
交易量的總和: 719139.8

沒有留言:

張貼留言