【发布时间】:2017-08-07 18:58:12
【问题描述】:
假设有一个这样创建的数据框:
tdata = {('A', 50): [1, 2, 3, 4],
('A', 55): [5, 6, 7, 8],
('B', 10): [10, 20, 30, 40],
('B', 20): [50, 60, 70, 80],
('B', 50): [2, 4, 6, 8],
('B', 55): [10, 12, 14, 16]}
tdf = pd.DataFrame(tdata, index=range(0,4))
A B
50 55 10 20 50 55
0 1 5 10 50 2 10
1 2 6 20 60 4 12
2 3 7 30 70 6 14
3 4 8 40 80 8 16
- 如何从数据框中删除特定列,例如 ('B', 10) 和 ('B', 20)?
- 有没有办法在一个命令中删除列,例如
tdf.drop(['B', [10,20]])?请注意,我知道我的命令示例绝不接近应有的内容,但我希望它能传达要点。 - 有没有办法通过一些逻辑表达式删除列?例如,假设我想删除子级索引小于 50 的列(同样是 10、20 列)。我可以执行一些包含“A”列的通用命令,即使 10,20 子级索引不存在或者我必须专门引用“B”列吗?
【问题讨论】:
-
你能解释更多吗
Can I do some general command that would encompass column 'A', even though the 10,20 sublevel indices don't exist or must I specifically reference column 'B'? -
@jezrael 感谢您的提问。我想知道我是否可以做一些类似通配符顶级'A'和'B'的事情,然后去寻找我不想要的子级别,比如 tdf.drop([:, [10,20]])。
-
我认为不是,这是不可能的。只能通过slicers 选择,而不是丢弃。
标签: python pandas dataframe hierarchical-data multi-index