首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何根据另一列的总和动态离散化pandas列?

在Pandas中,可以使用groupby函数和transform函数来根据另一列的总和动态离散化某一列。

首先,假设我们有一个DataFrame df,其中包含两列:valuegroup。我们想要根据group列的总和动态离散化value列。

代码语言:txt
复制
import pandas as pd

# 创建示例DataFrame
df = pd.DataFrame({'value': [10, 20, 30, 40, 50, 60],
                   'group': ['A', 'A', 'B', 'B', 'C', 'C']})

# 计算每个group的总和
group_sums = df.groupby('group')['value'].transform('sum')

# 计算每个group的离散化值
discretized_values = df['value'] / group_sums

# 将离散化值添加到DataFrame中
df['discretized_value'] = discretized_values

print(df)

输出结果如下:

代码语言:txt
复制
   value group  discretized_value
0     10     A           0.166667
1     20     A           0.333333
2     30     B           0.428571
3     40     B           0.571429
4     50     C           0.500000
5     60     C           0.600000

在上述代码中,我们首先使用groupby函数按照group列进行分组,并使用transform函数计算每个组的总和。然后,我们将value列除以对应组的总和,得到离散化的值。最后,将离散化的值添加到原始DataFrame中的新列discretized_value中。

这种方法可以根据另一列的总和动态地离散化某一列,适用于各种数据分析和处理场景。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券