cls*_*udt 4 python dataframe pandas data-munging
我需要一些简洁的帮助,首先在以下操作的熊猫中有效配方:
给定格式的数据框架
id a b c d
1 0 -1 1 1
42 0 1 0 0
128 1 -1 0 1
Run Code Online (Sandbox Code Playgroud)
构造格式的数据框:
id one_entries
1 "c d"
42 "b"
128 "a d"
Run Code Online (Sandbox Code Playgroud)
也就是说,列"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
Run Code Online (Sandbox Code Playgroud)
您可以将结果分配给 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
Run Code Online (Sandbox Code Playgroud)
x给出行的布尔值,值大于零.x[x]将仅返回True.本质上是一个以列名作为索引的系列.
In [85]: x[x]
Out[85]:
c True
d True
Name: 0, dtype: bool
Run Code Online (Sandbox Code Playgroud)
x[x].index 为您提供列名称.
In [86]: x[x].index
Out[86]: Index([u'c', u'd'], dtype='object')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
63 次 |
| 最近记录: |