gpt4 book ai didi

python - Pandas 计算多列

转载 作者:行者123 更新时间:2023-11-28 18:34:12 32 4
gpt4 key购买 nike

我有一个看起来像这样的数据框

Measure1 Measure2 Measure3 ...
0 1 3
1 3 2
3 0

我想计算要生成的列中值的出现次数:

Measure Count Percentage
0 2 0.25
1 2 0.25
2 1 0.125
3 3 0.373

outcome_measure_count = cdss_data.groupby(key_columns=['Measure1'],operations={'count': agg.COUNT()}).sort('count', ascending=True)

我只得到第一列(实际上使用 graphlab 包,但我更喜欢 pandas)

有人可以帮助我吗?

最佳答案

您可以使用 ravelvalue_counts 展平 df 来生成计数,由此您可以构建最终的 df:

In [230]:
import io
import pandas as pd

t="""Measure1 Measure2 Measure3
0 1 3
1 3 2
3 0 0"""

df = pd.read_csv(io.StringIO(t), sep='\s+')
df

Out[230]:
Measure1 Measure2 Measure3
0 0 1 3
1 1 3 2
2 3 0 0

In [240]:
count = pd.Series(df.squeeze().values.ravel()).value_counts()
pd.DataFrame({'Measure': count.index, 'Count':count.values, 'Percentage':(count/count.sum()).values})

Out[240]:
Count Measure Percentage
0 3 3 0.333333
1 3 0 0.333333
2 2 1 0.222222
3 1 2 0.111111

我插入了一个 0 只是为了使 df 形状正确,但你应该明白这一点

关于python - Pandas 计算多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34045837/

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