dataframe的一些用法
阿新 • • 發佈:2020-12-15
pandas中Dataframe的一些用法
pandas讀取excel檔案
- pd.read_excel 前提是安裝xlrd庫
dataframe,numpy,list之間的互相轉換
- dataframe轉numpy :dataframe物件.values
- dataframe轉list:dataframe物件.values.tolist()
- list轉numpy:np.array(list物件)
- list轉dataframe:pd.DataFrame(list物件)
- numpy轉list:numpy物件.tolist()
- numpy轉dataframe:pd.DataFrame(numpy物件)
dataframe 按行遍歷,按列遍歷
-
按行遍歷:
常用df.iterrows()
import pandas as pd demo_list = [[1,2], [3,4]] #用list構建dataframe demo_df = pd.DataFrame(demo_list) print(demo_df)
#接上
for row in demo_df.iterrows():
print(type(row))
print(row[0])
print(row[1])
可以看到每個row的型別是tuple元組型別,元組長度為2,元組第0個元素為index,第1個元素為橫向的series。**值得注意的是,在遍歷過程中如果取每一行的某個值,通過對row[1]進行切片即可。 **
-
按列遍歷
經常使用df.columns獲取列名然後訪問
#接上 print(demo_df.columns) for column in demo_df.columns: print(demo_df[column])
dataframe之使用iloc切片
- 先構建dataframe
import numpy as np import pandas as pd ##list構建5x5的dataframe,由於dataframe沒有reshape,因此需要藉助numpy demo_list = [i for i in range(25)] demo_np = np.array(demo_list).reshape(5,5) demo_df = pd.DataFrame(demo_list) print(demo_df)
- iloc[start:end ,start :end ]表示按行列取出dataframe的值。其中逗號前面表示行,逗號後面表示列。冒號左側表示開始,冒號右側表示結束(遵循左閉右開原則)。例如,demo_df.iloc[2:4,1:3]表示切片第二行到第三行 第一列到第二列資料。 切片返回的資料型別還是dataframe。
- iloc[start: end :step,start:end :step]是在上一個切片的基礎上加上了步長。表示從start到end每step步取一次值。
dataframe 中缺失值的處理
-
均值填充
通常使用fillna()
##獲取存在缺失值的列名列表 null_columns=list(file_df.columns[file_df.isnull().sum() > 0]) for column in null_columns : #計算每一列的均值 mean_val = file_df[column].mean() #使用fillna進行均值填充 file_df[column].fillna(mean_val, inplace=True)