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