【问题标题】:Pandas: sum Pivot Table rows for given columnsPandas:对给定列求和数据透视表行
【发布时间】:2021-01-20 20:17:06
【问题描述】:

我有一个从 DataFrame 创建的数据透视表。它基本上显示了一个城市中一周中每一天的请求数量。

          M  T  W  T  F  S  S
CITY 1     
CITY 2
CITY 3

我想创建一个新列,该列采用周六的数字,然后除以周一、周二、周三和周四的平均值。这是我写的代码,但是很笨重。

pivot_requests_per_area = df.pivot_table(values="requests_per_area", index="city name", columns="day", aggfunc=np.sum)

pivot_requests_per_area["delta_sat"] =pivot_requests_per_area["Saturday"] / ((pivot_requests_per_area["Monday"]+pivot_requests_per_area["Tuesday"]+pivot_requests_per_area["Wednesday"]+pivot_requests_per_area["Thursday"])/4)

我试过这样做,但我从 err 得到了一个 raise KeyError(key)。

weekdays = pivot_requests_per_area["Monday", "Tuesday", "Wednesday", "Thursday"]

pivot_requests_per_area["delta_fri"] =pivot_requests_per_area["Friday"] / pivot_requests_per_area[weekdays].mean()

我想知道是否有比单独添加列更有效的方法?

【问题讨论】:

    标签: python python-3.x pandas numpy pivot-table


    【解决方案1】:

    你得到的关键错误在第一行,正确的代码应该是:

    weekdays = pivot_requests_per_area[["Monday", "Tuesday", "Wednesday", "Thursday"]]

    替换它,您的代码应该可以工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-18
      • 2022-07-26
      • 2019-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-12
      • 1970-01-01
      相关资源
      最近更新 更多