我有兩個DataFrame,我想根據與列名稱df1
相交的列名稱df2
子集。在R
這很容易。根據另一個DataFrame的列名稱來設置DataFrame
R
代碼:
df1 <- data.frame(a=rnorm(5), b=rnorm(5))
df2 <- data.frame(a=rnorm(5), b=rnorm(5), c=rnorm(5))
df2[names(df2) %in% names(df1)]
a b
1 -0.8173361 0.6450052
2 -0.8046676 0.6441492
3 -0.3545996 -1.6545289
4 1.3364769 -0.4340254
5 -0.6013046 1.6118360
但是,我不知道如何在pandas
做到這一點。
pandas
嘗試:
df1 = pd.DataFrame({'a': np.random.standard_normal((5,)), 'b': np.random.standard_normal((5,))})
df2 = pd.DataFrame({'a': np.random.standard_normal((5,)), 'b': np.random.standard_normal((5,)), 'c': np.random.standard_normal((5,))})
df2[df2.columns in df1.columns]
這導致TypeError: unhashable type: 'Index'
。什麼是正確的方法來做到這一點?