前言:pandas 是乙個開源的軟體庫。dataframes和series是其兩個主要資料結構,被廣泛用於資料分析。series 是單維索引陣列,而dataframes 是具有列級和行級索引的**資料結構。pandas 是預處理資料集的絕佳工具,可提供高度優化的效能。numpy介紹
下面是詳細介紹**用例:
import pandas as pd
series_1 = pd.series([2,9,9,1]) #建立乙個series物件
print(series_1.values) #輸出series物件的值
#> [2 9 0 1]
series_1.index #series物件預設的下標
#> rangeindex(start=0, stop=4, step=1)
series_1.index = ['a', 'b', 'c', 'd'] #設定series物件的下標
series_1['d'] #使用新下標來取值
#> 1
#用pandas建立dataframe
class_data =
class_df = pd.dataframe(class_data, index=['student1', 'student2', 'student3'], columns=['names', 'standard', 'subject'])
print(class_df)
#> names standard subject
# student1 jeck 7 english
# student2 rose 5 math
# student3 amiy 8 sci
class_df.names #直接呼叫屬性
#>student1 jeck
#student2 rose
#student3 amiy
#name: names, dtype: object
#向dataframe新增新條目
import numpy as np #匯入numpy
class_df.ix['student4'] = ['rob',np.nan, 'history']
class_df.t # 轉置dataframe
#> student1 student2 student3 student4
#names jeck rose amiy rob
#standard 7 5 8 nan
#subject english math sci history
class_df.sort_values(by='standard') #根據一列排序行
#> names standard subject
#student2 rose 5.0 math
#student1 jeck 7.0 english
#student3 amiy 8.0 sci
#student4 rob nan history
#新增額外一行到dataframe的物件中
col_entry = pd.series(['a', 'b', 'a+', 'c'], index=['student1','student2','student3','student4'])
class_df['grade'] = col_entry
print(class_df)
# names standard subject grade
#student1 jeck 7.0 english a
#student2 rose 5.0 math b
#student3 amiy 8.0 sci a+
#student4 rob nan history c
#將兩個dataframes連線起來
student_age = pd.dataframe(data=, index=['student1','student2','student3','student4'])
print(student_age)
#> age
#student1 13
#student2 10
#student3 15
#student4 18
class_data = pd.concat([class_df, student_age], axis=1) # 按行新增
print(class_data)
#> names standard subject grade age
#student1 jeck 7.0 english a 13
#student2 rose 5.0 math b 10
#student3 amiy 8.0 sci a+ 15
#student4 rob nan history c 18
#map function
class_data['subject'] = class_data['subject'].map(lambda x : x + 'sub') # lambda代替一些簡單的函式
print(class_data['subject'])
#> student1 englishsub
#student2 mathsub
#student3 scisub
#student4 historysub
#name: subject, dtype: object
def age_add(x): # 定義乙個提高年齡一歲的新函式
return (x+1)
print('------old valus-----')
print(class_data['age'])
print('----new value----')
#> ------old valus-----
#student1 13
#student2 10
#student3 15
#student4 18
#name: age, dtype: int64
#----new value----
#student1 14
#student2 11
#student3 16
#student4 19
#name: age, dtype: int64
下面可以將列的資料型別更改為 「category」 型別:
class_data['grade'] = class_data['grade'].astype('category')
print(class_data.grade.dtypes)
#> category
以下**將結果儲存為 .csv 檔案:
#儲存結果
class_data.to_csv('class_dataset.csv', index=false)
更加詳細的內容可以戳這裡的官網:
pandas官網
Python 資料框之Pandas包
2.刪除 賦值 3.資料框的其他操作 從r語言轉戰python的小夥伴們,經常會遇到資料格式轉換上的問題。與r語言常用資料框格式不同,python以陣列矩陣儲存資料為主。但是python也是相容資料框格式,需要使用到pandas包。下面介紹幾種資料框的常用操作。df.columns 提取列名 df....
Python金融資料處理之Pandas包
在python的pandas包中,有兩種資料結構可以很方便地用於儲存複雜的資料,為series和dataframe。一 series 首先先講一下series,series是dataframe的基礎。series可以認為是個具有索引 index 的一維陣列,可以和程式設計中另乙個常用的概念hash ...
Python資料分析入門(三) Pandas介紹
那麼問題來了 numpy已經能夠幫助我們處理資料,能夠結合matplotlib解決我們資料分析的問題,那麼pandas學習的目的在什麼地方呢?numpy能夠幫我們處理處理數值型資料,但是這還不夠,很多時候,我們的資料除了數值之外,還有字串,還有時間序列等 比如 我們通過爬蟲獲取到了儲存在資料庫中的資...