gpt4 book ai didi

python - 使用样本,将函数应用于大量列子集

转载 作者:太空宇宙 更新时间:2023-11-04 03:46:40 34 4
gpt4 key购买 nike

我的数据包含 1,000 个样本,这些样本来自存储在 pandas DataFrame 中的几个不同国家的费率分布:

                  s1      s2  ...   s1000  pop
region country
NA USA 0.25 0.27 0.23 300
CAN 0.16 0.14 0.13 35
LA MEX ...

我需要将每个样本乘以总体。为此,我目前有:

for column in data.filter(regex='sample'):
data[column] = data[column]*data['pop']

虽然这行得通,但遍历列感觉上违反了 python 和 numpy 的精神。有没有更自然的方式我没有看到?我通常会使用 apply,但我不知道如何使用 apply 并仍然获得每一行的唯一人口值。

更多上下文:我需要进行此乘法运算的原因是因为我想按地区汇总数据,例如,将美国和加拿大合并到北美。但是,因为我的数据是比率,所以我不能简单地添加 - 我必须乘以人 Eloquent 能将它们转化为计数。

最佳答案

我可能会做类似的事情

>>> df
s1 s2 s1000 pop
region country
NaN USA 0.25 0.27 0.23 300
CAN 0.16 0.14 0.13 35

[2 rows x 4 columns]
>>> df.iloc[:,:-1] = df.iloc[:, :-1].mul(df["pop"], axis=0)
>>> df
s1 s2 s1000 pop
region country
NaN USA 75.0 81.0 69.00 300
CAN 5.6 4.9 4.55 35

[2 rows x 4 columns]

您可以使用任何其他基于 loc 的过滤器,而不是 iloc - 除了最后一列之外的每一列。

关于python - 使用样本,将函数应用于大量列子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23450800/

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