簡體   English   中英

用系列修改多索引切片

[英]Modify slice of multiindex with series

我有一個問題,我在一天的大部分時間里都在試圖解決這個問題,但到目前為止都是徒勞的。

我想要:

  1. 從多(列)索引中獲取一個系列
  2. 用數學運算符修改它,或者 an.apply() function
  3. 將其返回給 dataframe。

我可以做 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM