本文目錄一覽:
- 1、Python—padas(DataFrame)的常用操作
- 2、最全的pandas面試基礎100題目
- 3、python 用groupby之後生成新的數據框
- 4、python Pandas 如何實現excel透視的創建組功能
Python—padas(DataFrame)的常用操作
我們先說一下DataFrame是什麼:
1、DataFrame是一種數據框結構,相當於是一個矩陣形式,單元格可以存放數值、字符串等,這和excel表很像;
2、DataFrame是有 行(index)和 列(columns)可以設置的;
有了示例,我們就能明白創建時需要傳入數據,指定index(行索引名)和columns(列名);
在我們需要將單個元素的字典直接轉為DataFrame時,程序會報錯,需要適當做些轉換,指定行索引或者列索引才行;
在增加列的時候我們用到了一個索引loc,後面我們再詳細對loc進行說明,此處先知道可以這樣使用。
文本字符串數據處理之前,一定要先轉為字符(.str)再進行處理
loc 和 iloc如果容易記混,你就取巧記憶,index是索引
所以iloc則是依據位置索引進行取數,沒有i的則是按照名稱進行提取數據
原諒我很懶,比較喜歡這樣框架式的筆記,所以文字就會比較少(#^.^#)!!!
最全的pandas面試基礎100題目
在進行下面的題目操作時,一定要先導入上面的兩個數據分析包 pandas、numpy
1. 如何用Python的列表創建一個series?
輸出:
一個series是一個一維的標記數組,可以容納任何數據類型(整數、字符串、浮點數、Python對象等)。必須記住,與Python列表不同,一個series總是包含相同類型的數據。
2.如何使用列表創建一個DataFrame?
輸出:
3.如何使用Series 字典對象生成 DataFrame?
輸出:
4.如何在pandas中創建一個空的DataFrame?
要創建一個完全空的pandas dataframe,我們使用以下操作:
輸出:
已知有這樣的數據,如何進行查看
輸出:
2.如何查看尾部數據?
3.如何快速查看數據的統計摘要?
4.如何查詢索引和列名?
1.簡述Pandas Index
在panda中建立索引意味着簡單地從DataFrame中選擇特定的數據行和列。
pandas支持四種類型的多軸索引,它們是:
它們統稱為索引器。這些是迄今為止索引數據最常見的方法。這四個函數有助於從DataFrame獲取元素、行和列。
2.Pandas 定義重新索引(Reindexing)
重新索引會更改DataFrame的行標籤和列標籤。重新索引意味着使數據符合特定軸上給定的一組標籤。
多個操作可以通過像這樣的索引來完成:
輸出:
3.如何設置索引?
panda set_index() 是一種將列表、序列或dataframe設置為dataframe索引的方法。
語法:
DataFrame.set_index(keys, inplace=False)
參數:
改變索引列
在本例中,名稱列被用作DataFrame的索引列
輸出:
如輸出圖像所示,以前索引列是一系列數字
Before Operation –
After Operation
4.如何重置索引?
Pandas Series.reset_index()
函數的作用是:生成一個新的DataFrame或帶有重置索引的Series。
例1: 使用 Series.reset_index() 函數重置給定Series對象的索引
輸出:
現在,我們將使用Series.reset_index()函數來重置給定的series對象的索引
輸出 :
從輸出中可以看到,該 Series.reset_index() 函數已將給定Series對象的索引重置為默認值。它保留了索引,並將其轉換為列。
1.1先創建數據:
1.2選擇單列,產生 Series
詳見 按標籤選擇 。
2.1用標籤提取一行數據:
詳見 按位置選擇 。
3.1用整數位置選擇:
4.1用單列的值選擇數據:
5.1用索引自動對齊新增列的數據:
1.如何得到一個數列的最小值、第25百分位、中值、第75位和最大值?
輸出:
Pandas dataframe.mean(axis=None) 函數返回所請求軸(axis=0代表對列進行求平均值,axis=1代表對行進行求平均值)的值的平均值。
示例: 使用 mean() 函數查找索引軸上所有觀測值的平均值。
輸出:
讓我們使用datafame .mean()函數來查找索引軸上的平均值。
3.如何將函數應用到DataFrame中的每個數據元素?
可以使用 apply() 函數以便將函數應用於給定dataframe中的每一行。讓我們來看看我們完成這項任務的方式。
實例:
輸出:
4.如何在panda中獲得一個DataFrame的行數和列數?
輸出:
獲取df的行和列計數
輸出:
5.如何在panda DataFrame中獲得列值的總和?
Pandas dataframe.sum() 函數返回所請求軸的值的和
語法: DataFrame.sum(axis=None, skipna=None, )
參數:
示例1: 使用 sum() 函數查找索引軸上所有值的總和
現在求出沿索引軸的所有值的和。我們將跳過計算和時的NaN值。
輸出:
如何將新行追加到pandas DataFrame?
Pandas dataframe.append() 函數的作用是:將其他dataframe的行追加到給定的dataframe的末尾,返回一個新的dataframe對象。
語法:
DataFrame.append( ignore_index=False,)
參數:
示例1: 創建兩個數據框,然後將第二個附加到第一個。
現在將df2附加到df1的末尾
輸出:
請注意,第二個DataFrame的索引值保留在附加的DataFrame中。如果我們不希望發生這種情況,則可以設置ignore_index = True。
輸出 :
“group by” 指的是涵蓋下列一項或多項步驟的處理流程:
詳見 分組 。
輸出:
1.先分組,再用 sum() 函數計算每組的匯總數據:
輸出:
2.多列分組後,生成多層索引,也可以應用 sum 函數:
輸出:
如何將numpy數組轉換為給定形狀的DataFrame?
輸出:
輸出:
透視表是一種可以對數據動態排布並且分類匯總的表格格式,在pandas中它被稱作pivot_table。
pivot_table(data, values=None, index=None, columns=None)
參數:
詳見: 數據透視表
打印輸出:
用上述數據生成數據透視表非常簡單:
返回結果:
1.如何將列添加到pandas DataFrame?
源數據:
輸出:
輸出:
2.如何向panda DataFrame添加索引、行或列?
向DataFrame添加索引
如果您創建了一個DataFrame, panda允許將輸入添加到索引參數中。它將確保您擁有所需的索引。否則,在默認情況下,DataFrame包含一個數值索引,該索引從0開始,在DataFrame的最後一行結束。
向DataFrame添加行、列
我們可以使用.loc、iloc和ix將行、列插入到DataFrame中。
添加具有特定索引名的行:
輸出:
3.如何在panda DataFrame上進行迭代?
您可以通過結合使用for循環和對DataFrame的iterrows()調用來遍歷DataFrame的行。
輸出:
4.我們如何排序DataFrame?
我們可以通過以下幾種有效地在DataFrame中執行排序:
(1)按標籤
可以使用sort_index()方法對數據dataframe進行排序。可以通過傳遞axis參數和排序順序來實現。默認情況下,按升序對行標籤進行排序。
python 用groupby之後生成新的數據框
最近在做一點點風控的東西,想把toad中的ks_bucket改修正下,原碼裡面是按得分的最大最小值劃分的bucket,但我在實際的應用中想更個性化的劃分節點去統計。
首先需要解決的一個問題是把0~1上的概率給劃分到不同的區間,然後分別統計即可。
之前一直用groupby,分組後想count, sum,後變成df。在網上找了好幾種方法,都沒有成功,最後還是英文文檔解決了我的問題。
這是劃分好後的各列情況 , 第一列:概率,第二列:所屬的區間, 第三列: 實際的label
我主要是 想把這三列 , 按第二列分組,統計各區間的總數,和label為1的數
用NamedAgg 即可把原來的分組變為數據框。
python Pandas 如何實現excel透視的創建組功能
1、Series的創建
序列的創建主要有三種方式:
1)通過一維數組創建序列
import numpy as np, pandas as pd
arr1 = np.arange(10)
arr1
type(arr1)
s1 = pd.Series(arr1)
s1
type(s1)
2)通過字典的方式創建序列
dic1 = {‘a’:10,’b’:20,’c’:30,’d’:40,’e’:50}
dic1
type(dic1)
s2 = pd.Series(dic1)
s2
type(s2)
3)通過DataFrame中的某一行或某一列創建序列
這部分內容我們放在後面講,因為下面就開始將DataFrame的創建。
2、DataFrame的創建
數據框的創建主要有三種方式:
1)通過二維數組創建數據框
arr2 = np.array(np.arange(12)).reshape(4,3)
arr2
type(arr2)
df1 = pd.DataFrame(arr2)
df1
type(df1)
2)通過字典的方式創建數據框
以下以兩種字典來創建數據框,一個是字典列表,一個是嵌套字典。
dic2 = {‘a’:[1,2,3,4],’b’:[5,6,7,8],
‘c’:[9,10,11,12],’d’:[13,14,15,16]}
dic2
type(dic2)
df2 = pd.DataFrame(dic2)
df2
type(df2)
原創文章,作者:TDFP,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/145724.html