跟踪两个月列百分比变化的Python数据帧。手工输入月份
我正在尝试一些对我来说似乎很难的事情。如果有人能帮我做这个多重手术那就太好了。首先,我有一个数据框“df”,它监视一个网站的数百个用户帐户统计数据“帐户”列包含帐户名称,“用户”列包含每个帐户下的用户数,并且有十二个“登录(月)”列监视每个帐户的登录数 样本df:跟踪两个月列百分比变化的Python数据帧。手工输入月份,python,pandas,input,percentage,Python,Pandas,Input,Percentage,我正在尝试一些对我来说似乎很难的事情。如果有人能帮我做这个多重手术那就太好了。首先,我有一个数据框“df”,它监视一个网站的数百个用户帐户统计数据“帐户”列包含帐户名称,“用户”列包含每个帐户下的用户数,并且有十二个“登录(月)”列监视每个帐户的登录数 样本df: Account Users Logins in January Logins in February Logins in March Logins in April Nike
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
我希望此操作的用户键入月份,例如三月。然后,单元格将以数据帧格式返回从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
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
再次感谢!我真的很感谢你在这方面的帮助 使用
pandas.DataFrame.filter
和pct\u 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)
输出:
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
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
将
pandas.DataFrame.filter
与pct\u 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)
输出:
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
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
谢谢你的回答!百分比变化部分工作得非常好。但是,我也希望df2显示Account列。有什么办法吗?我感谢你的帮助@我编辑了MatthiasGallagher以反映变化;)再次感谢您的编辑!我意识到输出是一个数组而不是数据帧,并且列名没有对齐。这些问题也能解决吗?非常感谢@MatthiasGallagher你是怎么得到阵列的?是哪一行生产的?此外,对于对齐,其原因是索引具有名称account。如果希望它作为一个列,请尝试
df2.reset\u index()
问题已解决。这是打印(df2)行。非常感谢你的帮助!谢谢你的回答!百分比变化部分工作得非常好。但是,我也希望df2显示Account列。有什么办法吗?我感谢你的帮助@我编辑了MatthiasGallagher以反映变化;)再次感谢您的编辑!我意识到输出是一个数组而不是数据帧,并且列名没有对齐。这些问题也能解决吗?非常感谢@MatthiasGallagher你是怎么得到阵列的?是哪一行生产的?此外,对于对齐,其原因是索引具有名称account。如果希望它作为一个列,请尝试df2.reset\u index()
问题已解决。这是打印(df2)行。非常感谢你的帮助!