跟踪两个月列百分比变化的Python数据帧。手工输入月份

跟踪两个月列百分比变化的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

我正在尝试一些对我来说似乎很难的事情。如果有人能帮我做这个多重手术那就太好了。首先,我有一个数据框“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
我希望此操作的用户键入月份,例如三月。然后,单元格将以数据帧格式返回从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)行。非常感谢你的帮助!