Pandas各種騷操作

2021-08-17 11:39:54 字數 4099 閱讀 9031

stack()、unstack()、pivot()、pivot_table()

假如以下資料是5個公司4年分別的銷售額:

pivot()函式

pivot_table()函式

pivot_table()函式和pivot()函式類似,但功能更為強大。

例如如下資料:

a在one中重複了兩次,被預設取了平均值,a在two中不存在,值為nan。這個聚合函式功能和填充功能可以通過aggfunc和fill_value引數控制,比如:

以上功能如果使用pivot()函式會報錯,因為限制了唯一性。此外,pivot_table()的index引數支援列表,而pivot()則會報錯。

所以,通常,melt()通常和pivot_table()搭配使用。

注意的是轉換後的index和columns,是乙個多維的:

df_pivot_table.index

multiindex([(

'亞馬遜'

,'amozon'),

('臉書'

,'facebook'),

(,'tencent'),

('蘋果',)

,('谷歌'

,'google')]

, names=

['name'

,'company'])

df_pivot_table.columns

multiindex([(

'sale'

,'2013'),

('sale'

,'2014'),

('sale'

,'2015'),

('sale'

,'2016')]

, names=

[none

,'year'

])

可以通過以下方法還原:

col_level引數表示index放在多重列的哪一列。

找出存在nan的資料:

df[df.isnull(

).values==

true

]

找出nan值的位置:

df.isnull(

).stack()[

lambda x: x]

.index.tolist(

)

刪除存在nan值資料:

df.dropna(axis=0, how='any', inplace=true)
dataframe的遍歷:iterrows(), iteritems(), itertuples()

將datetime列表轉換為字串型別的日期列表:

df_per_unit[『date』]是series物件,裡面元素是datetime64[ns]型別。

list(pd.to_datetime(df_per_unit[『date』].unique()).strftime("%y-%m-%d"))

df[『date』].unique():ndarray物件

df.reset_index()

df.set_index()

df.reindex(idx,fill_value=0)

# 顯示所有行

pd.set_option(

'display.max_rows'

,none

)# 顯示所有列

pd.set_option(

'display.max_columns'

,none

)# 整體顯示寬度

pd.set_option(

'display.width'

,1000

)# 列顯示寬度,預設為50

pd.set_option(

'max_colwidth'

,1000

)

鍊錶集合的各種騷操作

includeusing namespace std typedef struct link pnode,node bool addyuansu pnode link,int e 在鍊錶集合中加入單個元素 else p p next if f 1 else return false pnode un...

Python中對 檔案 的各種騷操作

python中對檔案 資料夾 檔案操作函式 的操作需要涉及到os模組和shutil模組。得到當前工作目錄,即當前python指令碼工作的目錄路徑 os.getcwd 返回指定目錄下的所有檔案和目錄名 os.listdir 函式用來刪除乙個檔案 os.remove 刪除多個目錄 os.removedi...

mysql騷操作 Mysql騷操作 優化大分頁查詢

系統結構如上圖。經過排查是因為系統b拉取資料時間太長導致的推送超時。系統b拉取資料的方法是根據 tiemstamp 資料操作時間 分頁查詢系統a的介面,即 1select?欄位名2from?表名3where?timestamp?begintime?and?timestamp?endtime?4lim...