我有这个 Dataframe :
df0 = pd.DataFrame({'points': [0, 0, -3, 16, 0, 5, -3, 14],
'assists': [0, 0, 2, 0, 1, -7, 0, 6],
'numbers': [0, 0, 1, 6, 10, 5, 8, 7]})
我想要的数据集看起来像这样:
points assists numbers colX
0 0 0 0
0 0 0 0
-3 2 1 'points-assists-numbers'
16 0 6 'points-numbers'
0 1 10 'assists-numbers'
5 7 5 'points-assists-numbers'
-3 0 8 'points-numbers'
14 8 7 'points-assists-numbers'
一个函数,它从具有不同于零的值的列名创建字符串。
有人帮忙吗?
3条答案
按热度按时间u3r8eeie1#
这种操作非常适合lambda表达式。
类似这样的方法应该可以奏效:
df0['colX'] = df0.apply(lambda x: '-'.join(c for c in df0.columns if x[c] != 0), axis=1).replace('', 0)
ohtdti5x2#
您可以尝试使用
dot
5cg8jx4n3#
以下是一些选项:
或
或