簡體   English   中英

根據其他數據框過濾熊貓數據框列

[英]Filter pandas dataframe columns based on other dataframe

我有兩個數據框df1和df2。 df1提供有關某些元素(A,B,C ...)的一些數值數據,而df2是一個像分類表一樣工作的數據幀,其索引為df1的列名。 我想通過僅將匹配某個分類的列保留在df2中來過濾df1。

例如,假設以下兩個數據幀,而我只想保留屬於類“ C1”的元素(即df1的列):

df1 = pd.DataFrame({'A': [1,2],'B': [3,4],'C': [5,6]},index=[0, 1])

df2 = pd.DataFrame({'Name': ['A','B','C'],'Class': ['C1','C1','C2'],'Subclass': [C11,C12,C21]},index=[0, 1, 2])

df2 = df2.set_index('Name')

預期結果應該是只有列A和B的數據幀df1,因為在df2中,我們可以看到A和B在類C1中。 不知道該怎么做。 我正在考慮先通過“類別”列中的“ C1”值過濾df2,然后檢查df1.columns是否在df2.index中,但是我想有一種非常有效的方法。 謝謝你的幫助

這是使用索引切片的一種方法

df1.loc[:,df2.index[df2.Class=='C1']]
Out[578]: 
Name  A  B
0     1  3
1     2  4

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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