Pandas庫的介紹
Pandas是一個開放源碼的Python庫畸陡,它使用強大的數(shù)據(jù)結(jié)構(gòu)提供高性能的數(shù)據(jù)操作和分析工具鹰溜。Pandas的主要特點:
快速高效的DataFrame對象虽填,具有默認和自定義的索引丁恭。
將數(shù)據(jù)從不同文件格式加載到內(nèi)存中的數(shù)據(jù)對象的工具。
丟失數(shù)據(jù)的數(shù)據(jù)對齊和綜合處理斋日。
重組和擺動日期集牲览。
基于標(biāo)簽的切片,索引和大數(shù)據(jù)集的子集恶守。
可以刪除或插入來自數(shù)據(jù)結(jié)構(gòu)的列第献。
按數(shù)據(jù)分組進行聚合和轉(zhuǎn)換。
高性能合并和數(shù)據(jù)加入兔港。
時間序列功能庸毫。
常用方法
csv文件下載?密碼:m8af
import pandas as pd
# 讀取一個csv文件,轉(zhuǎn)換成food_info對象
food_info = pd.read_csv('food_info.csv')
# 輸出每一列的dtype類型
food_info.dtypes
# 輸出對象的前3行衫樊,不指定默認為前5行
food_info.head(3)
# 輸出對象的后3行飒赃,不指定默認為后5行
food_info.tail(3)
# 查看對象的形狀\維度
food_info.shape
# 根據(jù)索引號獲取第一行的數(shù)據(jù)
food_info.loc[0]
# 根據(jù)切片獲取指定行數(shù)數(shù)據(jù)
food_info.loc[3:8]
# 根據(jù)列名取一列數(shù)據(jù),列名是csv文件中的第一行
food_info['Shrt_Desc']
# 判斷是否缺失 nan科侈,值是否為空返回一個布爾值列表
# 對缺失值的處理方式:可以直接去除载佳、 或者填充當(dāng)前列的平均值,補充為完整的樣本
pd.isnull(food_info)
pd.isnull(food_info['Shrt_Desc'])
# 定義一個list臀栈,根據(jù)這個list可以取多列
columns = ['NDB_No', 'Shrt_Desc']
food_info[columns]
# 獲取對象中的所有列名,并將列名轉(zhuǎn)換為list
info_columns = food_info.columns
columns_list = info_columns.tolist()
# 獲取對象中所有列名以(g)單位為結(jié)尾的列蔫慧,并且回傳到food_info,使g_food_info只包含以(g)結(jié)尾的列
g_columns = []
for cin columns_list:
# 轉(zhuǎn)不轉(zhuǎn)成string都可以权薯,因為ide不知道c的類型姑躲,自動補齊方法永不了睡扬,所以我手動轉(zhuǎn)成string
? ? c =str(c)
if c.endswith('(g)'):
g_columns.append(c)
g_food_info = food_info[g_columns]
# 加減乘除:所有項都乘1000
iron_mg_column = food_info['Iron_(mg)']
iron_mg_column = iron_mg_column *1000
# 加減乘除:如果是相同維度,則會計算相同的位置
iron_mg_columns = food_info['Iron_(mg)'] * food_info['Calcium_(mg)']
# 像food_info中傳入新的一列黍析,指定列名和數(shù)據(jù),此時foodinfo維度也會發(fā)生改變
food_info['abcd'] = iron_mg_columns
# 最大值威蕉、最小、求和之類的操作也和numpy差不多
food_info['Iron_(mg)'].max
food_info['Iron_(mg)'].min
food_info['Iron_(mg)'].sum
# 將列進行排序
# inplace:是否在原對象food_info上作出改變橄仍,如果為false韧涨,food_info中只有'Water_(g)'進行排序。如果是true侮繁,整個food_info的所有列都根據(jù)'Water_(g)'進行排序
# ascending:false為降序虑粥,true為升序(升序為默認值,所以可以省略)
values = food_info.sort_values('Water_(g)', inplace=True, ascending=False)