计算玩具销售额大于该列平均值的次数
Count Number of Times the Sale of a Toy is greater than Average for that Column
我有一个数据集,我必须在其中确定玩具的销售价值是否大于列中的平均值,并计算有多少个不同的销售区域,价值大于平均值。
例如:找到列 "Sale B"
- 2.5 的平均值,检查该值大于 2.5 的行数,然后对 "SaleA"
和 "SaleC"
执行相同的练习然后全部添加
input_data = pd.DataFrame({'Toy': ['A','B','C','D'],
'Color': ['Red','Green','Orange','Blue'],
'SaleA': [1,2,0,1],
'SaleB': [1,3,4,2],
'SaleC': [5,2,3,5]})
创建了新列 "Count_Sale_Average"
,例如:玩具“A”只有一个位置的销量高于平均水平。
output_data = pd.DataFrame({'Toy': ['A','B','C','D'],
'Color': ['Red','Green','Orange','Blue'],
'SaleA': [1,2,0,1],
'SaleB': [1,3,4,2],
'SaleC': [5,2,3,5],
'Count_Sale_Average':[1,2,1,1]})
我的代码正在运行并提供了所需的输出。关于其他方法的任何建议可能会更有效并且行数更少。
list_var = ['SaleA','SaleB','SaleC']
df = input_data[list_var]
for i in range(0,len(list_var)):
var = list_var[i]
mean_var = df[var].mean()
df[var] = df[var].apply(lambda x: 1 if x > mean_var else 0)
df['Count_Sale_Average'] = df[list_var].sum(axis=1)
output_data = pd.concat([input_data, df[['Count_Sale_Average']]], axis=1)
output_data
您可以 filter
,在轴上找到 mean
和 sum
:
filtered = input_data.filter(like='Sale')
input_data['Count_Sale_Average'] = filtered.gt(filtered.mean()).sum(axis=1)
输出:
Toy Color SaleA SaleB SaleC Count_Sale_Average
0 A Red 1 1 5 1
1 B Green 2 3 2 2
2 C Orange 0 4 3 1
3 D Blue 1 2 5 1
我有一个数据集,我必须在其中确定玩具的销售价值是否大于列中的平均值,并计算有多少个不同的销售区域,价值大于平均值。
例如:找到列 "Sale B"
- 2.5 的平均值,检查该值大于 2.5 的行数,然后对 "SaleA"
和 "SaleC"
执行相同的练习然后全部添加
input_data = pd.DataFrame({'Toy': ['A','B','C','D'],
'Color': ['Red','Green','Orange','Blue'],
'SaleA': [1,2,0,1],
'SaleB': [1,3,4,2],
'SaleC': [5,2,3,5]})
创建了新列 "Count_Sale_Average"
,例如:玩具“A”只有一个位置的销量高于平均水平。
output_data = pd.DataFrame({'Toy': ['A','B','C','D'],
'Color': ['Red','Green','Orange','Blue'],
'SaleA': [1,2,0,1],
'SaleB': [1,3,4,2],
'SaleC': [5,2,3,5],
'Count_Sale_Average':[1,2,1,1]})
我的代码正在运行并提供了所需的输出。关于其他方法的任何建议可能会更有效并且行数更少。
list_var = ['SaleA','SaleB','SaleC']
df = input_data[list_var]
for i in range(0,len(list_var)):
var = list_var[i]
mean_var = df[var].mean()
df[var] = df[var].apply(lambda x: 1 if x > mean_var else 0)
df['Count_Sale_Average'] = df[list_var].sum(axis=1)
output_data = pd.concat([input_data, df[['Count_Sale_Average']]], axis=1)
output_data
您可以 filter
,在轴上找到 mean
和 sum
:
filtered = input_data.filter(like='Sale')
input_data['Count_Sale_Average'] = filtered.gt(filtered.mean()).sum(axis=1)
输出:
Toy Color SaleA SaleB SaleC Count_Sale_Average
0 A Red 1 1 5 1
1 B Green 2 3 2 2
2 C Orange 0 4 3 1
3 D Blue 1 2 5 1