其實用到的也不多,就全部列下來吧,中文就是註解

 

套件

import numpy as np
import seaborn as sns
from cycler import cycler 用於 Matplotlib 來控制多條線或多個物件的顏色、線型、標記等屬性依序變化
import yfinance as yf
import xml.etree.ElementTree as ET
tree = ET.parse(r'D:\檔案路徑\檔案.xml')
root = tree.getroot()

 


函數

with open("scores.txt", "r") as file: lines = file.readlines() 讀取當前目錄的scores.txt,計算行數
int(line.strip().split(",")[1]) # 分割每行数据,取第二部分(分数)并转换为整数
scores.append(score)将转换后的分数添加到分数列表中
average_score = sum(scores) / len(scores)

input("輸入")
print(輸出)
mean(取平均)
count(取次數)
min(取最小值)
max(取最大值)
zip() 將多個序列依索引位置配對,回傳元組序列的迭代器。可用來平行迭代、多序列合併或拆解資料。zip(*iterable) 可做解壓縮,將元組序列拆回多個序列。這使得 zip() 在資料處理、排序、繪圖標籤與數值分離等場景非常實用


方法

import pandas as pd
數據結構.to_csv()存成CSV檔不輸出索引欄
數據結構 = pd.read_csv('檔案加附檔名', encoding='big5')
數據結構 = pd.DataFrame(字典變數)
數據結構.pct_change()計算數據結構,每個元素與前一個元素百分比變化的方法
數據結構.dtypes
數據結構.shape
數據結構.info()
數據結構.describe()
數據結構.T等同於呼叫數據結構.transpose()更簡潔的語法。
數據結構.columns = ['更換新標頭甲', '更換新標頭乙']:
數據結構.sort_values("依據排序欄位",ascending=False)
mount = 數據結構['計算該欄不同資料出現次數'].value_counts()
新數據結構=pd.DataFrame(數據結構,index=[1,2,3,4,5,6,7,8,9,10,11,12]).reset_index().rename(columns={'舊標頭甲':'新標頭甲','舊標頭乙':'新標頭乙'})
數據結構.head(預設顯示10筆)
數據結構.tail(預設顯示10筆)
cols = ['甲欄', '乙欄', '丙欄']
新數據結構[cols] = 數據結構[cols].replace(',', '', regex=True移除千分位逗號).astype(float)將結果轉為浮點數
新數據結構 = pd.melt( 數據結構 , id_vars=['不變變數名'],
value_vars=['參數甲', '參數乙'], var_name='參數甲或乙',value_name='參數甲或乙的數值')
新數據結構['甲欄']=數據結構['甲欄'].astype(int) 
數據結構.isnull().any()檢查是否有選填
數據結構.drop_duplicates(subset=['指定判斷重複的欄位'],  
                                            keep='last',            # 保留最後一筆重複資料
                                         inplace=True)           # 直接修改原 DataFrame
新數據結構 = 數據結構.copy()
新數據結構 = 數據結構.size().reset_index(name='命名')
新數據結構['日期標頭'] = pd.to_datetime(數據結構['日期標頭'])
新數據結構= 數據結構.drop(['甲欄', '乙欄', '丙欄'], axis=1) 0是刪列 
新數據結構 = 數據結構.groupby("分組的判斷內容")
新數據結構 = 判斷布林值的新數據結構[作為判斷內容]
新數據結構 = (數據結構["標頭"]=="作為判斷的內容")
新數據結構 = pd.concat([df1, df2, df3, df4])
新數據結構 = 數據結構.pivot_table(index='甲欄', columns='乙欄', values='丙欄')直表換橫表
數學函式庫.mean
plt.rcParams['font.sans-serif'] = ['設定字體']
數據結構.to_numpy() 轉成 NumPy 格式用其的運算功能處理資料。

arr = np.array([[1, 2, 3], [4, 5, 6]])
avg = np.mean(arr, axis=1)

 

np.argmax() 和 np.argmin():回傳的是「扁平化」後的索引值例如在 3x3 矩陣中,可能回傳 0-8 的數字
np.unravel_index():將扁平化的索引轉換回原矩陣的座標需要傳入矩陣的形狀 (shape)


import matplotlib.pyplot as plt
mpl.rcParams['axes.unicode_minus'] = False# 讓負號可以顯示正確
設定字型家族或具體字型    plt.rcParams['font.family'] = 'serif'
設定全域字型大小(pt)    plt.rcParams['font.size'] = 10
設定字型樣式(如斜體)    plt.rcParams['font.style'] = 'italic'
設定字型粗細(如粗體)    plt.rcParams['font.weight'] = 'bold'

多條柱狀圖

sns.countplot(x='橫軸標題',hue='橫軸的多項參數',data=數據結構,palette=sns.color_palette("漸層色系"))

sns.FacetGrid(sharey=False)#sharey=False-->每一個子圖的y軸不要共享一個大圖拆成多個小圖,這些小圖依照你指定的分類變數排列成網格狀

兩組數據水平長條圖

x = [1,2,3]
x2 = [0.8,1.8,2.8]
h = [10,20,30]
h2 = [20,10,40]
plt.barh(x,h,color='b',height=0.4, align='edge對齊指定的 X 軸位置')  
plt.barh(x2,h2,color='r',height=0.4)              
plt.show()

多條摺線圖:

x = [1, 2, 3, 4, 5] 
y = [10, 20, 15, 25, 30]  
y2 = [5, 15, 25, 20, 10]
plt.plot(x, y, label='線A')
plt.plot(x, y2, label='線B')
plt.legend()
plt.show() 

圓餅圖

labels = ["甲名稱","乙名稱","丙名稱"]
圖示內容 = [甲數據,乙數據,丙數據]
colors = ["甲顏色","乙顏色","丙顏色"]
plt.pie(圖示內容,labels=labels,colors=colors,autopct="%1.1f%%")
plt.axis("equal正圓")

內環與外環圖

1.讀取資料
Platform = pd.read_csv("Percentage of each platform.csv")
讀取 CSV 檔案,資料結構假設為每列代表一個平台類別(例如 Delivery platform 與 Shopping platform),欄位為不同成本或收益項目。
2.建立繪圖視窗大小
plt.figure(figsize=(8,8))
設定繪圖視窗為 8x8 吋,讓圓餅圖呈現圓形且大小合適。
3.繪製外環圖
使用 plt.pie(),選取資料的第一列(Platform.iloc[0,1:])作為數值。
設定半徑為 1,寬度為 0.3(寬度控制環狀厚度)。
加入分類標籤與百分比數字。
4.繪製內環圖
使用 plt.pie(),選取資料的第二列(Platform.iloc[1,1:])作為數值。
半徑較小為 0.6,寬度同樣為 0.3,繪製在外環內部形成環狀雙層圖。
也顯示百分比,但不加標籤。
5.設定標題
plt.title("Delivery platform (Outer ring) and Shopping platform (Inner ring)")
為整張圖表加上標題,說明外環與內環分別代表的資料。

6.儲存圖檔
plt.savefig("檔名.jpg",  
                   bbox_inches='tight',               # 去除座標軸占用的空間
                   pad_inches=0.0)                    # 去除所有白邊   


字符串格式化(String Formatting)

print(f"Hello, {姓名}! You are {年齡} years old.")
print("Hello, {}! You are {} years old.".format(姓名, 年齡))
print("Hello, %s! You are %d years old." % (姓名, 年齡))

文章標籤
全站熱搜
創作者介紹
創作者 ky0dd 的頭像
ky0dd

阿京小站

ky0dd 發表在 痞客邦 留言(0) 人氣(3)