如何有效地重新安排大熊猫数据如下?

我需要一些简洁的帮助,首先在以下操作的熊猫中有效配方:

给定格式的数据框架

id    a   b    c   d
1     0   -1   1   1
42    0    1   0   0
128   1   -1   0   1

构造格式的数据框:

id     one_entries
1      "c d"
42     "b"
128    "a d"

也就是说,列“one_entries”包含原始帧中的条目为1的列的连接名称.

解决方法:

这是使用布尔规则和应用lambda func的一种方法.

In [58]: df
Out[58]:
    id  a  b  c  d
0    1  0 -1  1  1
1   42  0  1  0  0
2  128  1 -1  0  1

In [59]: cols = list('abcd')

In [60]: (df[cols] > 0).apply(lambda x: ' '.join(x[x].index), axis=1)
Out[60]:
0    c d
1      b
2    a d
dtype: object

您可以将结果分配给df [‘one_entries’] =

申请功能的详细信息.

先排第一.

In [83]: x = df[cols].ix[0] > 0

In [84]: x
Out[84]:
a    False
b    False
c     True
d     True
Name: 0, dtype: bool

x给出行的布尔值,值大于零. x [x]将仅返回True.本质上是一个以列名作为索引的系列.

In [85]: x[x]
Out[85]:
c    True
d    True
Name: 0, dtype: bool

x [x] .index为您提供列名称.

In [86]: x[x].index
Out[86]: Index([u'c', u'd'], dtype='object')

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐