今天又是數(shù)據(jù)分析的一天扰柠。
今天要是分析費(fèi)用報(bào)銷(xiāo)流程用時(shí)情況粉铐。碰到的第一個(gè)問(wèn)題是對(duì)原用時(shí)字段列的重命名。我記得應(yīng)該是用 rename卤档,方法蝙泼, 于是去查了一下相關(guān)資料。
df.rename (index = index_mapper, columns = columns_mapper)
例: df.rename (columns = {old.name : new.name})
其中的 mapper 是一個(gè)字典型數(shù)據(jù)劝枣, mapper 中文為映射汤踏,挺稀奇,因?yàn)槲抑斑€沒(méi)用過(guò)字典型參數(shù)呢舔腾。
同時(shí)我還意外發(fā)現(xiàn)溪胶,除了用。axis 的值除了可以填 0 或者 1,用 "columns" 和 ”index"也可以稳诚。其中用 “columns” 時(shí)哗脖,代表生成計(jì)算列,"index" 代表生成計(jì)算行,挺好的懒熙,這個(gè)很直觀丘损。
接下來(lái)是關(guān)于 pandas 中的一些時(shí)間計(jì)算。pandas 中的時(shí)間數(shù)據(jù)類(lèi)型主要是兩種:datetime 和 timedelta工扎。
首先是 date time 類(lèi)型,pandas 針對(duì) datetime 有很多便捷操作衔蹲,但在了解這些之前我還是先
了解下如何把數(shù)據(jù)轉(zhuǎn)化為 date time 類(lèi)型肢娘。通過(guò)查閱資料我發(fā)現(xiàn),可以用 Pd.to_datetime() 的方法將數(shù)據(jù)轉(zhuǎn)為 date time 類(lèi)型舆驶。在這個(gè)方法里橱健,pandas 能智能識(shí)別所給數(shù)據(jù)的日期格式,但是如果所給數(shù)據(jù)的日期格式比較罕見(jiàn)沙廉,就要自己設(shè)置 format 參數(shù)拘荡,告訴 pandas 正確的時(shí)間格式,相關(guān)參數(shù)包括
年撬陵,月珊皿,日:%Y,% m巨税,%d
時(shí)蟋定,分,秒:%H草添,%M驶兜,%S
例: "%Y-%m-%d:%H%M%S",代表 年-月-日:時(shí)-分-秒 的格式远寸。
一旦轉(zhuǎn)化成功抄淑,pandas 對(duì) datetime 的運(yùn)用方式是很多的。當(dāng) index 為 datetimes 類(lèi)型時(shí)驰后,可以進(jìn)行時(shí)間索-引: [“year-month-day_1":"Year_month_day_2"]
當(dāng) values 為 date_times 類(lèi)型時(shí)肆资,可以用 dt 接口進(jìn)-行時(shí)間計(jì)算。這里在調(diào)用 dt 接口時(shí)有一點(diǎn)容易忽略倡怎,就是要記得像 dt迅耘,str 這種接口是針對(duì) Series 使用的,并非針對(duì) DataFrame 使用的监署。隨后我查到了一些 dt 的使用方法颤专。
提取年月日: dt.year,dt.month, dt.day
提取時(shí)分秒: dt.hour钠乏,dt.minute栖秕,dt.second
星期(數(shù)字版): dt.weekday (周一為 0)
星期(文字版):dt.day_name() (周一為 Monday)
季度: dt.quarter
轉(zhuǎn)為格式化字符:dt.strftime()
然后是 timedelta 類(lèi)型。
timedelta 是兩個(gè) datetime 的差額晓避,獲取 timedelta 有兩種方式簇捍,一是用兩個(gè) datetime 相減只壳,二是直接構(gòu)造,構(gòu)造代碼是?
pd.to_timedelta (data, unit: None)
to_timedelta 方法沒(méi)有 to_datetime暑塑,那么方便吼句,每一次都需要人工指定 data 的時(shí)間間隔單位。常用單位是
D/day事格, H/hour惕艳,minute,second 等
構(gòu)造好 timedelta 之后驹愚,在后續(xù)代碼中可以對(duì)它進(jìn)行提取計(jì)算远搪,目前我所掌握的就兩種方法:
Series. dt.days
Series.dt.total_seconds()
今天的數(shù)據(jù)分析工作就到這里了,主要是 pandas 時(shí)間數(shù)據(jù)的一些處理方式逢捺,以及 df 列的映射重命名方式谁鳍。
此外今天還有一個(gè)小發(fā)現(xiàn),就是在使用 Jupiter Notebook 敲代碼的時(shí)候劫瞳,可以按 Tab 鍵進(jìn)行聯(lián)想補(bǔ)全倘潜,可以補(bǔ)全方法和變量名, 以后多試試用幾次吧柠新,看看好不好用窍荧。
ok,休息去
(圖片來(lái)自于互聯(lián)網(wǎng):圖片來(lái)源)?