【Python】Pandas 小記

NumpyPandas

參考資料

 

 

範例程式碼與筆記

# ===== dataframe的初始化 =====



# ===== dataframe的操作 =====
#附加一列數據
a = { 'a':1, 'b':1, 'c':1 }
df = df.append(a, ignore_index=True)

#刪除數據
df.dropna(axis=0, how='any')

#替換數據
df.replace(to_replace=None, value=None)

#轉置矩陣
df.T

#刪除欄位
df = df.drop('Name', axis=1) #axis=0,代表列; axis=1,代表行

#顯示有哪些欄位
df.columns 

#修改欄位名稱
df.rename({'舊欄位名稱1': '新欄位名稱1', '舊欄位名稱2': '新欄位名稱2'}, axis=1)

#新增欄位
df.insert(index, '欄位名稱', )

#顯示資料相關資訊
df.info()
df.info(memory_usage='deep') #顯示記憶體使用狀況

# ===== 檔案操作 =====
#Read CSV
pd.DataFrame.from_csv("csv_file")
pd.read_csv("csv_file")

#Write CSV
df.to_csv("data.csv", sep=",", index=False)

#Read Excel
pd.read_excel("excel_file")


# ===== 資料操作 =====
df.groupby('XXX').count() #每個類別的數量
df.groupby('XXX').mean() #每個類別的平均 
df.groupby('XXX').std() #每個類別的標準差
df.groupby('XXX').median() #每個類別的中位數 

df.replace('XXX', 'YYY', inplace=True)  #修改df,將所有值為XXX的改為YYY #inplace=True代表直接替換掉原數據
df['A'].replace('XXX', 'YYY', inplace=True)  #修改df中欄位A裡,所有值為XXX的改為YYY
df.replace({'XXX':0.1},{'YYY':0.2})  #修改多個值。所有df中的XXX改為0.1,YYY改為0.2
df.replace(['XXX','YYY'], 0.1)  #修改多個值。所有df中的XXX或YYY改為0.1
df.replace('[A-Z]',0.1, regex=True)  #透過正規表示法來修改數值。將df中所有數值為A~Z的內容改為0.1
df['A'].str.replace('XXX','YYY') #將df中A欄位裡的所有XXX改為YYY

# ===== 其他操作 =====
#產生一個dataframe
datesframe = pd.date_range('20200101', periods=6)
pd.DataFrame(np.arrange(24).reshape((4,6)), index=datesframe, columns=['A', 'B', 'C', 'D'])

#選擇欄
df['A'] or df.A

#根據標籤選擇 - loc
df.loc(:,['A','B'] #取得所有的列欄位'A'與欄位'B'的資料
df.loc('20200101',['A','B']] #取得列20200101的欄位'A'與欄位'B'資料
df.loc['20200101'] #取得列20200101的所有欄位資料

#根據序列選擇 - iloc (位置從0算起)
df.iloc[3,1] #取得第4列、第2行的資料
df.iloc[3:5,1:3] #取得第4~5列、第2~3欄的資料
df.iloc[[1,3,5],1:3] #取得第1,3,5列、第2~3欄的資料

#混合選擇 - ix
df.ix(:3,['A',C'] #取0~2列、'A''C'兩欄的資料

#條件式篩選
df[df.A>8] #列出所有'A'欄位>8的所有資料列

 

 

Leave a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *