【发布时间】: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