2013-12-22 60 views
3

讓我們說我有一個數據幀,我想找到一個列的所有負值,這樣的:行索引映射回原來的索引數據幀

df_negAssets = df_original[df_original["assets"] < 0] 

現在我有一個新的數據幀,超出了我原來的索引數據框。該數據框可能包含7行。

我的問題是:如何將這7行映射到原始數據框?

df_negAssets.iloc(2) 

給我第三行。但是,我的原始數據框中的哪一行對應於?它是第59行嗎?如何在我的視圖中找到索引「2」,對應於我原始數據框中的索引「59」?我該如何回去? 「2」 - >「59」,以及如何找出「59」 - >「2」?

回答

3

要獲取映射:

df_negAssets.index 

>如何找出指數「2」,在新的數據幀,相當於指數「59」在我的原始數據幀?

df_negAssets.index[2] == 59 

>我如何回去? ...以及如何找出「59」 - >「2」?

numpy.where(df_negAssets.index == 59)[0][0] == 2 

你確定你需要嗎?請記住,您可以使用df_negAssets[59]

順便說一句,df_negAssets是不是一個看法。這是一個新的DataFrame。如果您拿一整列或一個切片(df[0][x:y:z]),那麼它可以是一個視圖。當您使用像<0這樣的條件時,它會創建一個新的DataFrame。

+0

謝謝,我糾正了我的帖子。我不打算使用它,但出於好奇,我如何在切片和數據框之間在兩個方向上進行映射?難以做到,然後跳過這個問題。 –