在pandas数据框架中添加常量列的更好方法

2024-09-29 18:41:40 发布

您现在位置:Python中文网/ 问答频道 /正文

当前,当我必须向现有数据帧添加常量列时,我将执行以下操作。在我看来,它并没有那么优雅(我乘以数据帧长度的部分)。想知道是否有更好的方法来做这件事。

import pandas as pd

testdf = pd.DataFrame({'categories': ['bats', 'balls', 'paddles'],
                       'skus': [50, 5000, 32],
                       'sales': [500, 700, 90]})

testdf['avg_sales_per_sku'] = [testdf.sales.sum() / testdf.skus.sum()] * len(testdf)

Tags: 数据方法importdataframepandasaspdcategories
2条回答

只需给出一个数字,就可以隐式地填充该列。

testdf['avg_sales_per_sku'] = testdf.sales.sum() / testdf.skus.sum() 

来自the documentation

When inserting a scalar value, it will naturally be propagated to fill the column

把分类平均数和总平均数混合起来,我觉得很困惑。您还可以使用:

testdf['avg_sales_per_sku'] = testdf.sales / testdf.skus
testdf['avg_agg_sales_per_agg_sku'] = testdf.sales.sum() / float(testdf.skus.sum())  # float is for Python2

>>> testdf
  categories  sales  skus  avg_sales_per_sku  avg_agg_sales_per_agg_sku
0       bats    500    50            10.0000                   0.253837
1      balls    700  5000             0.1400                   0.253837
2    paddles     90    32             2.8125                   0.253837

相关问题 更多 >

    热门问题