1. 程式人生 > 實用技巧 >dataframe的一些用法

dataframe的一些用法

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)