【问题标题】:Add new rows to calculate the sum and average from exiting pandas dataframe添加新行以计算现有 pandas 数据帧的总和和平均值
【发布时间】:2018-03-14 00:43:58
【问题描述】:

我的目标是编写一个接收用户输入的程序,计算订单(苹果酒和苹果汁)的价格并打印如下表格:

名称 Cider Juice Subtotal (Cider) Subtotal (Juice) Total

理查德 13 9 美元 71.50 美元 40.50 美元 112.00 美元

乔治 7 21 美元 38.50 美元 94.50 美元 133.00 美元

保罗 0 23 美元 0.00 美元 103.50 美元 103.50 美元

约翰 22 5 美元 121.00 美元 22.50 美元 143.50 美元

总计 42 58 $ 231.00 $ 261.00 $ 492.00

平均 10.50 14.50 $ 57.75 $ 65.25 $ 123.00

程序应该:

• 询问订购的人数

• 使用字符串数组存储名称,使用整数数组存储苹果酒的订单数量(每个价格为 5.50 美元),使用整数数组存储苹果汁的订单数量(每个价格4.50 美元)

• 阅读姓名、苹果酒订单数量和苹果汁数量的列表

• 将它们存储在相应的数组中

• 跟踪苹果酒订单总数和苹果汁订单总数

• 打印所有姓名、每种订单的数量、每种产品的小计价格以及该人的总价格 最后,它还应该打印:

• 每种订单的总数量、总订单的小计价格和总价

• 每种的平均订单数,每种的平均小计价格,以及每个人的平均价格

以下是运行示例(粗体字表示用户输入): 该程序计算订单的价格。

有多少人订购? 4

输入第 1 个人的姓名:Richard

Richard 有多少份苹果酒订单? 13

Richard 有多少订单果汁? 9

输入第 2 个人的姓名:George

乔治有多少份苹果酒订单? 7

乔治有多少订单果汁? 21

输入第 3 个人的姓名:Paul

保罗有多少份苹果酒? 0

Paul 有多少订单的果汁? 23

输入第 4 个人的姓名:John

约翰有多少份苹果酒订单? 22

约翰有多少订单果汁? 5

我已经解决了“总计”和“平均”行之前的行。

import pandas as pd

df = pd.DataFrame(columns=["Names", "Cider", "Juice", "Subtotal(Cider)", "Subtotal(Juice)", "Total"]) people_ordered = input('订购了多少人?') # type str

'''根据用户输入创建 4x3 表''' 对于我在范围内(int(people_ordered)): names = input("输入人物姓名#" + str(i + 1) + " ") # type str

cider_orderred = float(input("How many orders of cider did {} have? ".format(names)))  # type str
juice_orderred = float(input("How many orders of juice did {} have? ".format(names)))  # type str

# store the values of the subtotals from user inputs
cider_sub = 5.50 * cider_orderred  # type float
juice_sub = 4.50 * juice_orderred  # type float
total = cider_sub + juice_sub  # type float

# create the 4x6 table
df1 = pd.DataFrame(
    data=[[names, cider_orderred, juice_orderred, cider_sub, juice_sub, total]],
    columns=["Names", "Cider", "Juice", "Subtotal(Cider)", "Subtotal(Juice)", "Total"])
# merge the the 4x3 into the 4x6 table

df = pd.concat([df, df1], axis=0)

现在我有一张桌子:

    Names   Cider   Juice   Subtotal(Cider) Subtotal(Juice) Total
0   Richard 13.0    9.0 71.5    40.5    112.0
0   George  7.0 21.0    38.5    94.5    133.0
0   Paul    0.0 23.0    0.0 103.5   103.5
0   John    22.0    5.0 121.0   22.5    143.5

如何从列中计算“总计”和“平均值”并将它们连接到最终数据帧?

【问题讨论】:

    标签: python python-3.x pandas numpy dataframe


    【解决方案1】:

    每个 DataFrame 列都是 Pandas 系列。您可以对它们执行求和或均值运算。

    例如:

        column_sum = dataframe.column_name.sum()
        column_mean = dataframe['column_name'].mean()
    

    这是此功能的文档,以及所有可用操作的列表:

    https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.html

    此外,您可以像列表一样简单地附加到数据框。将数据作为字典传递。

    df = df.append({'column_name':data, 'column_name':data}, ignore_index=True)
    

    【讨论】:

      猜你喜欢
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多