gpt4 book ai didi

pandas - 我如何计算标志列?

转载 作者:行者123 更新时间:2023-12-02 01:38:16 25 4
gpt4 key购买 nike

如何计算每行中重复的正元素或负元素的数量?

假设我有以下数据:

ski      2020    2021      2022     2023       2024      2025
book 1.2 5.6 8.4 -2 -5 6
jar 4.2 -5 -8 2 4 6
kook -4 -5.2 -2.3 -5.6 -7 8

输出是每行的列表,用于计算相似符号的数量。例如,在第一行中,我们有 3 个正元素,然后是 2 个负元素,最后还有一个正元素。所以输出是[3,-2,1]。对于另外 2 行,输出如下:

 jar   [1,-2,3]
kook [-5,1]

最佳答案

使用DataFrame.clip使用自定义 lambda function用于计算连续值:

#if necessary
df = df.set_index('ski')
print (df)
2020 2021 2022 2023 2024 2025
ski
book 1.2 5.6 8.4 -2.0 -5 6
jar 4.2 -5.0 -8.0 2.0 4 6
kook -4.0 -5.2 -2.3 -5.6 -7 8


from itertools import groupby

f = lambda x: [ int(sum(key for _ in group)) for key, group in groupby( x )]
s = df.clip(upper=1, lower=-1).apply(f, 1)
print (s)
ski
book [3, -2, 1]
jar [1, -2, 3]
kook [-5, 1]
dtype: object

关于pandas - 我如何计算标志列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71994688/

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