【发布时间】:2017-03-03 19:48:35
【问题描述】:
我想为我的 DF 添加一个新关卡(这样我就可以使用pd.reindex 来做其他事情)。我的 DF 基本上是这样的:
df = pd.DataFrame({('A','a'): [-1,-1,0,10,12],
('A','b'): [0,1,2,3,-1],
('A','c'): [-1,1,0,10,12],
('A','d'): [1,1,2,3,-1],
('B','a'): [-20,-10,0,10,20],
('B','b'): [-200,-100,0,-1,200],
('B','c'): [-20,-10,0,10,20],
('B','d'): [-200,-100,0,100,200]
})
##df
A B
a b c d a b c d
0 -1 0 1 1 -20 -200 -20 -200
1 -1 1 -1 1 -10 -100 -10 -100
2 0 2 0 2 0 0 0 0
3 10 3 10 3 10 -1 10 100
4 12 -1 12 -1 20 200 20 200
我想分配新的级别键L1 = a+b 和L2=c+d。我该怎么做?
期望的输出是
##df
A B
L1 L2 L1 L2
a b c d a b c d
0 -1 0 1 1 -20 -200 -20 -200
1 -1 1 -1 1 -10 -100 -10 -100
2 0 2 0 2 0 0 0 0
3 10 3 10 3 10 -1 10 100
4 12 -1 12 -1 20 200 20 200
编辑:目标是实现类似于here 中所要求的目标。这意味着某些行将具有相同 KEY 的 NAs,具体取决于其他列的值。
例如。如果我想通过分别测试列 b 和 d 是否为负来过滤列 a 和 c:
##df
A B
L1 L2 L1 L2
a b c d a b c d
0 -1 0 1 1 NA NA NA NA
1 -1 1 -1 1 NA NA NA NA
2 0 2 0 2 0 0 0 0
3 10 3 10 3 NA NA 10 100
4 NA NA NA NA 20 200 20 200
【问题讨论】:
-
“这样我就可以使用 pd.reindex 做其他事情了”:如果您说明您的最终目的,也许我们可以更好地帮助您。
-
嗯,最终目的与我在这里(stackoverflow.com/questions/42246373/…)提出的非常相似。现在的不同之处在于我必须解析列
a和b(就像我在上一篇文章中所做的那样),c和d也是如此。 -
我将更改工作示例以反映此评论
-
@Wli 我添加了一些信息,希望对我有所帮助:)
-
看来还是有人能回答的:)