在一個熊貓多索引數據框中,如何在依賴於包含在不同列中的特定條件的列中設置值?有條件地替換熊貓多索引數據幀中的數據
所以,我有一個數據幀,基本上是這樣的:
COL1 COL2 COL3 COL4
foo 1 -1.322275 1.107506 1.253344 -0.331782
2 -0.378448 -1.174557 -0.772984 1.476661
3 0.046396 0.904299 0.768654 -0.168910
4 1.396580 1.250713 0.193130 -0.454971
bar 1 -1.453794 -0.393206 -0.922908 0.762605
2 1.375954 -1.304682 0.329339 0.606340
3 -2.911151 0.011083 0.771964 1.620039
4 0.040204 0.887082 -0.893575 1.129227
您可以使用此代碼創建:
arrays = [np.array(['foo','foo','foo','foo','bar','bar','bar','bar']),
np.array([1,2,3,4,1,2,3,4])]
df = pd.DataFrame(np.random.randn(8,4), index=arrays)
df.columns = ['COL1','COL2','COL3','COL4']
我要評估 'COL1' 子幀「FOO '的值大於0,並用新值COL1/1替換(原地不復制)相應行的'COL4'值。然後,我想再次爲子幀「bar」做同樣的事情,但是應該評估「COL2」值。
我的實際數據框是巨大的,所以我一直在努力尋找比遍歷行更好的解決方案。我已經能夠有條件地取代常規數據框,但是,當我嘗試更先進的多索引和設置時,某些內容不會點擊。我可能會讓事情變得更加複雜,但我距離牆壁約45分鐘路程。
我不明白'COL1/1'的意思。 COL4在索引[foo] [3]處有什麼價值?當評估COL2時,是否希望再次替換COL4值? – vmg