gpt4 book ai didi

python - 如何有效地重新排列 Pandas 数据如下?

转载 作者:太空狗 更新时间:2023-10-30 02:17:06 25 4
gpt4 key购买 nike

我需要一些帮助,以在 pandas 中对以下操作进行简洁且首先有效的表述:

给定一个格式的数据框

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 的列的串联名称。

最佳答案

这是使用 bool 规则和应用 lambda 函数的一种方法。

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 为您提供该行的 bool 值,值大于零。 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')

关于python - 如何有效地重新排列 Pandas 数据如下?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40829103/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com