由於常常會遇到一些奇怪的問題,上網查到或是自己有找到方法寫出解法的話,就在這裡紀錄一下吧!
以免沒有記性我忘記當時的想法XD
Pandas:
DataFrame iloc, loc 對比啦:
iloc 我是想像成 int location 所以不管哪一軸或是要找column都一定要用數字來當作index
ex: df.loc[some_list_or_int_value, 3]
loc呢就是可以用其他型態當作index做搜尋的
ex: df.loc[some_list_or_int_value, “id"]
some_list_or_int_value: 顧名思義就是可以用陣列找多個row或是用單一一個int找一個row喔!
像是 SQL 的 Where搜尋:
這邊需要非常注意!!!
很多時候都會把它當作 DataFrame的where,但是其實不是這樣!!
就是單純的這樣寫就可以了!
df[ df[“id"]=="XDDDDDDD" ]
VS
select * from id="XDDDDDDD"
isin:
當你有一個陣列的值需要去 DataFrame 裡面去尋找時可以用
df[ df[‘A’].isin([3, 6]) ]
而 [3,6] 就是你存放需要搜尋的值的陣列
df[‘A’].isin([3, 6]) ==> 這樣會回傳一個都是 True, False 的陣列,row的個數跟 df 一樣
然後再將牠放到 df[ … ] 裡面,這樣就可以把想要搜尋的row找到了
MultiIndex 多Index設定方法:
index_array = [
df[“id"].values,
[i.strip() for i in df[“hosp_id"].values]
]
df = pd.DataFrame(index=index_array)
DataFrame Date Parser:
如果想要把資料用datetime格是讀進來的話可以用~
def dateparse(raw_date):
for fmt in [“%Y%m%d", “%Y%m"]:
try:
return datetime.datetime.strptime(raw_date, fmt)
except ValueError:
pass
return np.nandf = pd.read_csv(“./xxx.csv", date_parser=dateparse, parse_dates=[“in_date","out_date","appl_date"])
小幫手 Function:
檢查元素是否一樣:
def check_same(iterator):
return len(set(iterator)) <= 1