Python 创建一个新列,该列是一行中有多少条目满足数据帧中每一行的条件的计数

Python 创建一个新列,该列是一行中有多少条目满足数据帧中每一行的条件的计数,python,pandas,time-series,Python,Pandas,Time Series,我使用的是时间序列数据,它总结了用户对产品的使用情况。每个用户是一列,每个日期是一行。我试着总结一下在生活中使用该产品的用户的百分比,这要求他们每天使用该产品一定时间 date user1 user2 user3 user4 2017-06-23 120.000000 200.000000 20.000000 0.000000 2017-06-24 201.0000

我使用的是时间序列数据,它总结了用户对产品的使用情况。每个用户是一列,每个日期是一行。我试着总结一下在生活中使用该产品的用户的百分比,这要求他们每天使用该产品一定时间

date          user1         user2           user3              user4
2017-06-23    120.000000    200.000000      20.000000          0.000000   
2017-06-24    201.000000    195.000000      10.000000          0.000000   
2017-06-25    267.333333    190.000000      56.666667          0.000000   
2017-06-26    255.500000    142.500000      42.500000          0.000000   
2017-06-27    269.200000    131.800000      45.600000          0.000000   
2017-06-28    241.500000    138.333333      49.500000          0.000000   
2017-06-29    224.000000    118.571429      61.000000          0.000000  

我正在尝试计算一行中每个条目满足条件的次数,并创建一个新列,该列将对此进行计数,然后除以用户总数*100。我试过:

df['Percent of Adoption'] = (df[df.columns > 50].count(axis=0)/len(df.columns))*100
这会产生以下错误:

TypeError: '>' not supported between instances of 'str' and 'int'
期望输出:

date          user1         user2           user3              user4//     
2017-06-23    120.000000    200.000000      20.000000          0.000000   
2017-06-24    201.000000    195.000000      10.000000          0.000000   
2017-06-25    267.333333    190.000000      56.666667          0.000000   
2017-06-26    255.500000    142.500000      42.500000          0.000000   
2017-06-27    269.200000    131.800000      45.600000          0.000000   
2017-06-28    241.500000    138.333333      49.500000          0.000000   
2017-06-29    224.000000    118.571429      61.000000          0.000000 

Percent of Adoption
50.0
50.0
75.0
50.0
50.0
50.0
75.0


任何帮助都将不胜感激。谢谢

我已经根据这些废话回答了你的问题。但是我的答案和你的答案不匹配。要么我误解了,要么你使用了虚拟变量

首先将索引设置为最新

df = df.set_index('date')
然后过滤数据帧中大于50的值,并在列轴上求和=1,然后除以列数

df['percent_of_adoption'] = (df > 50).sum(axis = 1).div(df.count(axis = 1)) * 100

始终添加示例数据框和预期输出,人们希望阅读数据,而不是阅读大量文本感谢您的建议!对不起,我是新手,非常感谢!这对我有用。我使用了虚拟变量,因为它是机密数据。