一、explode
explode用於將一行資料展開成多行
。比如說dataframe中某一行其中乙個元素包含多個同型別的資料,若想要展開成多行進行分析,這時候explode就派上用場,而且只需一行**,非常節省時間。
用法:示例:以下表中第三行、第二列為例,展開[2,3,8]dataframe.explode(self, column: union[str, tuple])
引數作用:
column :str 或 tuple
# 先建立表
使用explode輕鬆將[2,3,8]轉換成多行,且行內其他元素保持不變。
二、nunique
nunique用於計算行或列上唯一值的數量
,即去重後計數
。這個函式在分類問題中非常實用,當不知道某字段中有多少類元素時,nunique能快速生成結果。
用法:
series.nunique(dropna=true)
dataframe.nunique(axis=0, dropna=true)
引數作用:
axis:int型,0代表行,1代表列,預設0;
dropna:bool型別,預設為true,計數中不包括nan;
示例:
先建立乙個df:
對year列進行唯一值計數:
df.year.nunique()
輸出:10對整個dataframe的每乙個字段進行唯一值計數
三、infer_objects
infer_objects用於將object型別列推斷為更合適的資料型別
。
用法:
# 直接將df或者series推斷為合適的資料型別
dataframe.infer_objects()
pandas支援多種資料型別,其中之一是object型別。object型別包括字串和混合值(數字及非數字)。
object型別比較寬泛,如果可以確定為具體資料型別,則不建議用object。
使用infer_objects方法將object推斷為int型別:
print(df.infer_objects().dtypes)
##結果
a int64
dtype: object
四、memory_usage
memory_usage用於計算dataframe每一列的位元組儲存大小
,這對於大資料表非常有用。
用法:
dataframe.memory_usage(index=true, deep=false)
引數解釋:
index:指定是否返回df中索引位元組大小,預設為true,返回的第一行即是索引的記憶體使用情況;
deep:如果為true,則通過查詢object型別進行系統級記憶體消耗來深入地檢查資料,並將其包括在返回值中。
示例:首先建立乙個df,共2列,1000000行。
#!/usr/bin/env python
#-*- coding:utf-8 -*-
import pandas as pd
import numpy as np
df_large = pd.dataframe()
print(df_large.shape)
##結果輸出
(1000000, 2)
返回每一列的占用位元組大小:
print(df_large.memory_usage())
第一行是索引index的記憶體情況,其餘是各列的記憶體情況。
五、replace
顧名思義,replace是用來替換df中的值,賦以新的值
。
用法:
dataframe.replace(to_replace=none, value=none, inplace=false, limit=none, regex=false, method=『pad』)
引數解釋:
to_replace:被替換的值
value:替換後的值
inplace:是否要改變原資料,false是不改變,true是改變,預設是false
limit:控制填充次數
regex:是否使用正則,false是不使用,true是使用,預設是false
method:填充方式,pad,ffill,bfill分別是向前、向前、向後填充
建立乙個df:
#!/usr/bin/env python
#-*- coding:utf-8 -*-
import pandas as pd
import numpy as np
values_1 = np.random.randint(10, size=10)
values_2 = np.random.randint(10, size=10)
years = np.arange(2010,2020)
groups = ['a','a','b','a','b','b','c','a','c','c']
df = pd.dataframe()
print(df)
將a全部替換為d:
df.replace('a','d')
將b替換為e,c替換為f:
5個實用的Pandas技巧
效率已成為及時完成工作的關鍵因素。乙個人不應該花超過合理的時間去完成事情。尤其是當任務涉及基本編碼時。使用pandas庫能節省你的時間。pandas是乙個開源包。它有助於用python語言執行資料分析和資料操作。此外,它還為我們提供了靈活的資料結構。目錄 pandas技巧1 行的條件選擇 首先,資料...
pandas的時間日期高效操作
29 pandas的時間日期高效操作 探索資料之美 0.395 2018.01.02 11 27 56 字數 656 閱讀 8,288 在前面的文章中,我們總結了一下關於時間日期的簡單計算,但是我們發現很多功能都是datetime庫提供的,那麼pandas有沒有提供跟日期時間有關的函式呢?自然是有的...
pandas的連線函式concat 函式
pd.concat objs,axis 0,join outer join axes none,ignore index false,keys none,levels none,names none,verify integrity false,copy true 引數含義 key引數 join引數...