猿问

Pandas:对给定列的数据透视表行求和

我有一个从 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 中得到了引发 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()

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


慕桂英4014372
浏览 118回答 1
1回答

烙印99

您得到的关键错误位于第一行,正确的代码应该是:weekdays = pivot_requests_per_area[["Monday", "Tuesday", "Wednesday", "Thursday"]]替换它,你的代码应该可以工作。
随时随地看视频慕课网APP

相关分类

Python
我要回答