我有一个熊猫系列,内容如下。
$ import pandas as pd
$ s = pd.Series(
data = [True, False, True, True],
index = ['A', 'B', 'C', 'D']
)
$ s.index.name = 'my_id'
$ print(s)
my_id
A True
B False
C True
D True
dtype: bool
和这样的DataFrame。
$ df = pd.DataFrame({
'A': [1, 2, 9, 4],
'B': [9, 6, 7, 8],
'C': [10, 91, 32, 13],
'D': [43, 12, 7, 9]
})
$ print(df)
A B C D
0 1 9 10 43
1 2 6 91 12
2 9 7 32 7
3 4 8 13 9
s
具有A
,B
,C
和D
作为索引。 df
的列名称也有A
,B
,C
和D
。
True
中的 s
表示df
中的相应列将被保留。 False
中的s
表示df
中的相应列将被删除。
如何使用s
删除B列来生成另一个DataFrame?
我的意思是我想使用s
和df
创建以下DataFrame。
A C D
0 1 10 43
1 2 91 12
2 9 32 7
3 4 13 9
答案 0 :(得分:3)
将boolean indexing
与DataFrame.loc
一起使用。 :
表示过滤所有行。列由填充布尔值的Series
过滤-mask
:
df1 = df.loc[:, s]
print (df1)
A C D
0 1 10 43
1 2 91 12
2 9 32 7
3 4 13 9