[英]What is an efficient way to slice a Pandas Series with a MultiIndex along multiple dimensions?
[英]Modify slice of multiindex with series
我有一個問題,我在一天的大部分時間里都在試圖解決這個問題,但到目前為止都是徒勞的。
我想要:
我可以做 1 和 2,但由於某種原因,我無法將其正確返回到 dataframe。 我也很樂意從該系列中構建一個新的 dataframe。 至此,我願意做很多事情來解決它。
示例數據如下所示:
富 | 酒吧 | 巴茲 | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
天 | 夜晚 | 天 | 夜晚 | 天 | 夜晚 | |||||||||||||||||||
一個 | 一個 | b | b | 一個 | 一個 | b | b | 一個 | 一個 | b | b | 一個 | 一個 | b | b | 一個 | 一個 | b | b | 一個 | 一個 | b | b | |
12 | 5 | 33 | 50 | 12 | 5 | 33 | 50 | 12 | 5 | 33 | 50 | 12 | 5 | 33 | 50 | 12 | 5 | 33 | 50 | 12 | 5 | 33 | 50 | |
ID | ||||||||||||||||||||||||
1 | 0 | 2 | 1 | 0 | 12 | 0 | 18 | 0 | 9 | 0 | 3 | 0 | 2 | 0 | 0 | 0 | 0 | 15 | 0 | 0 | 3 | 0 | 0 | 0 |
2 | 1 | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 7 | 0 | 0 | 2 | 0 | 11 | 1 | 19 | 0 | 0 | 0 | 6 | 1 | 0 |
3 | 0 | 0 | 0 | 3 | 20 | 1 | 0 | 14 | 0 | 3 | 2 | 0 | 3 | 0 | 0 | 0 | 1 | 0 | 0 | 16 | 0 | 1 | 6 | 0 |
4 | 0 | 3 | 2 | 0 | 0 | 10 | 0 | 0 | 0 | 2 | 0 | 12 | 0 | 0 | 20 | 4 | 5 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
5 | 16 | 0 | 0 | 0 | 7 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 18 | 1 | 0 | 0 | 0 | 0 | 5 | 0 | 5 | 13 | 0 | 0 |
6 | 0 | 0 | 10 | 6 | 1 | 0 | 9 | 13 | 0 | 3 | 8 | 0 | 4 | 8 | 0 | 0 | 11 | 14 | 0 | 0 | 21 | 0 | 0 | 0 |
7 | 7 | 0 | 0 | 0 | 0 | 19 | 0 | 0 | 1 | 17 | 0 | 0 | 0 | 0 | 22 | 0 | 2 | 0 | 0 | 0 | 0 | 2 | 0 | 17 |
我可以通過以下一些變體獲取數據:
in:
df.loc[2].loc['Foo','day']
out:
a 12 1
5 4
b 33 0
50 0
現在我想做一些類似的事情:
df.loc[2].loc['Foo','day'] == df.loc[2].loc['Foo','day'] * (60*24)
並使用新數據更新 dataframe。 就是后面做迭代編輯。 但由於某種原因,我的 dataframe 沒有任何改變。 我已經嘗試以我能想到的所有不同方式對其進行切片和更新。
我在這里嘗試了 jezrael 對 jaydeepsb 的回答中的代碼: Pandas update values in a multi-index dataframe這讓我很難用一個值來更新一個切片,但到目前為止用一個系列更新一個切片讓我難以理解。
如果有人可以幫助我,我非常感謝你。 也因為沒有讓我沮喪地把我的電腦扔出 window:D
(1) 找到您的 dataframe 的子集,(2) 應用您的操作和 (3) 更新您的 dataframe:
idx = pd.IndexSlice # for multi-index slicing
df.update(df.loc[[2], idx["Foo", "day", :, :]] * (60*24))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.