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...