gpt4 book ai didi

python - pandas 扩展(累积)value_counts

转载 作者:行者123 更新时间:2023-12-01 09:29:52 25 4
gpt4 key购买 nike

有没有办法获取数据框中每一行的值计数?

|f1|f2|
-------
v1 | a value_counts -> {a:1}
v2 | a value_counts -> {a:2}
v3 | b value_counts -> {a:2,b:1}
v4 | c value_counts -> {c:1,a:2,b:1}

最佳答案

您可以对感兴趣的列上的 get_dummies 的输出调用 cumsum:

>>> pd.get_dummies(df["f2"])
a b c
0 1 0 0
1 1 0 0
2 0 1 0
3 0 0 1
>>> pd.get_dummies(df["f2"]).cumsum()
a b c
0 1 0 0
1 2 0 0
2 2 1 0
3 2 1 1

如果您想要 value_counts 的等价于 normalize=True,您只需手动执行即可:

>>> x = pd.get_dummies(df["f2"]).cumsum()
>>> x.div(x.sum(axis=1), axis=0)
a b c
0 1.000000 0.000000 0.00
1 1.000000 0.000000 0.00
2 0.666667 0.333333 0.00
3 0.500000 0.250000 0.25

这可能是进一步数据处理的最佳格式。虽然您可以将其强制转换为类似字典的格式,但 pandas 对非标量元素没有良好的支持,因此除了速度慢之外,它还可能导致神秘的错误。也就是说:

>>> pd.get_dummies(df["f2"]).cumsum().apply(dict, axis=1)
0 {'a': 1, 'b': 0, 'c': 0}
1 {'a': 2, 'b': 0, 'c': 0}
2 {'a': 2, 'b': 1, 'c': 0}
3 {'a': 2, 'b': 1, 'c': 1}
dtype: object

关于python - pandas 扩展(累积)value_counts,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50063089/

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