我有一个数据框,如下所示:
a b c d......
1 1
3 3 3 5
4 1 1 4 6
1 0
我想根据列“a”中给定的值选择列数。在这种情况下,对于第一行,它将只选择列b。 我如何实现以下目标:
df.iloc[:,column b:number of columns corresponding to value in column a]
我的预期产出是:
a b c d e
1 1 0 0 1 # 'e' contains value in column b because colmn a = 1
3 3 3 5 335 # 'e' contains values of column b,c,d because colm a
4 1 1 4 1 # = 3
1 0 NAN
一种numpy切片方法
编辑:带切片的单线解决方案
使用的数据集:
如有改进建议,将不胜感激
为此定义一个小函数:
函数使用
iat
查询该行的a
列,并使用iloc
从同一行中选择列可以这样称呼它:
以及
基于您的编辑,考虑此-
在此处使用
where
/mask
(带numpy广播)+agg
如果没有匹配项,则
e
中的条目将有一个空字符串。只需使用replace
-相关问题 更多 >
编程相关推荐