今天我們繼續講下Python中一款數據分析很好的庫。Pandas的學習
接着上回講到的,如果有人聽不懂,麻煩去翻閱一下我前面講到的Pandas學習(一)
如果我們在數據中,想去3,4,5這幾行數據,那么我們怎么取呢?
food.loc[3:6]
可以看到,這種取法跟Python中,切片操作一樣。
如果我想去單獨某幾條數據,只需要傳入index值即可
food.loc[[2,5,10]]
如果我先想不通過行去取數據,想通過列去取數據的話,我們該怎么做呢??
我們可以通過列名去拿取數據
col_NB = food["NDB_No"] print(col_NB)
可以看到,我們取到了第一列的數據出來。
那么我們想取兩列數據出來,我們應該怎么操作呢?
方法跟上面一樣,將列名加到里面,組成一個list列表。
col_2 = ["Zinc_(mg)","Copper_(mg)"] col_2_all = food[col_2] print(col_2_all)
來我們看下數據上面,有些列名是帶了單位的,那么我們怎么選擇其中某幾個一樣單位的列呢?
我們先要取到全部的列名,然后將列名中帶有單位(g)的列名取出,並單獨放到一個列表中,最后在取這個列表中的列的數據即可
col_names = food.columns.tolist() print(col_names) gram_columns = [] for c in col_names: if c.endswith("(g)"): gram_columns.append(c) gram_df = food[gram_columns] print(gram_df.head(3))
這些都是些簡單的操作,
再比如說,我們想進行一些加減乘除的操作。
我想把單位為mg的數據,轉換成g的數據,這里的做法,就跟Numpy是類似的。
print(food["Iron_(mg)"]) div_1000 = food["Iron_(mg)"]/1000 print(div_1000)
我們在對某個數據上進行操作,即可得到我們想要的結果。
water_energy = food["Water_(g)"]*food["Energ_Kcal"]
對應位置的乘法操作,需要保證的是,維度要相同才可以!
water_energy = food["Water_(g)"]*food["Energ_Kcal"] water_energy = food["Water_(g)"]*food["Energ_Kcal"] iron_grams = food["Iron_(mg)"]/1000 print(food.shape) food["Iron_(g)"]=iron_grams print(food.shape)
上一段代碼可以看到,我們把一列名稱的值,進行單位轉換,把mg轉換為g,然后新建了一列數據
將這列數據放到數據集中,之前打印出來的數據維度,8618個樣本,和36個屬性值。后面打印的
是37個屬性值,也就是我們將新的屬性值,放入到原來的數據值中了!前提是,其中的維度要對應上才可以。
weighted_protein = food["Protein_(g)"]*2 weighted_fat =-0.75* food["Lipid_Tot_(g)"] initial_rating = weighted_protein + weighted_fat
比如說這些運算操作, 維度一樣,相當於對應位置進行運算。
跟Numpy一樣,我們也有一些別方法,求最大值,最小值,平均值等等
方式基本上跟Numpy類似。
今天就先講到這里。感謝大家的閱讀!感謝~~