gpt4 book ai didi

python - 创建比例数据框

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

我有这样的列表:

[[person_a,code_1],[person_a,code_2],[person_a,code_3],[person_b,code_1],[person_b,code_1],[person_b,code_1],[person_a,code_4],[person_b,code_2]...]

我希望实现以下目标:

          code_1  code_2 code_3 code_4
person a .2500 .2500 .2500 .2500
person b .6667 .3333 0.0 0.0

我用过prop.table以前在 R 中实现过这一点,但我想知道是否有 Python 等效项。我可以将列表列表转换为数据框,我感兴趣的是一些可以生成每个人代码比例的函数。

最佳答案

使用 Pandas

import pandas as pd

data = [
['person_a', 'code_1'],
['person_a', 'code_2'],
['person_a', 'code_3'],
['person_b', 'code_1'],
['person_b', 'code_1'],
['person_b', 'code_1'],
['person_a', 'code_4'],
['person_b', 'code_2']]

df = pd.DataFrame(data, columns=['person', 'code'])

df = df.assign(relative_frequency=1).groupby(['person', 'code']).count().unstack()
# >>> df
# relative_frequency
# code code_1 code_2 code_3 code_4
# person
# person_a 1 1 1 1
# person_b 3 1 NaN NaN

>>> df.div(df.sum(1), axis=0)
relative_frequency
code code_1 code_2 code_3 code_4
person
person_a 0.25 0.25 0.25 0.25
person_b 0.75 0.25 NaN NaN

关于python - 创建比例数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53768725/

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