问题描述
我正在尝试一些对我来说似乎很困难的事情。如果有人可以帮助我进行这项多方面的工作,那就太好了。首先,我有一个数据框“ df”,它监视网站的数百个用户帐户统计信息。 “帐户”列包含帐户名,“用户”列包含每个帐户下的用户数,并且有十二个“(每月)登录数”列用于监视每个帐户的登录数。
样本df:
Account Users Logins in January Logins in February Logins in March Logins in April
Nike 148 68 94 72 87
Adidas 654 134 192 248 324
Apple 43 23 40 32 29
Tesla 864 651 598 691 439
我希望此操作的用户输入月份,例如3月。然后,该单元将以数据帧格式返回从2月到3月的“登录”百分比变化。像这样:
输入:
Please input Month: (This is where the user type in the month in interest)
输出:
Account Logins in February Logins in March Percentage Change (%)
Nike 94 72 -23
Adidas 192 248 29
Apple 40 32 -20
Tesla 598 691 16
再次感谢!我真的很感谢任何帮助!
解决方法
将pandas.DataFrame.filter
与pct_change
一起使用:
input_ = "Mar"
df2 = df.set_index("Account").filter(regex="Feb|%s" % input_).copy()
df2["Percentage Change (%)"] = df2.pct_change(axis=1).iloc[:,-1].mul(100).round()
print(df2)
输出:
Logins in February Logins in March Percentage Change (%)
Account
Nike 94 72 -23.0
Adidas 192 248 29.0
Apple 40 32 -20.0
Tesla 598 691 16.0