我有这样的数据框
A B
0 1 a
1 2 a
2 3 b
3 4 b
4 5 a
我想得到下面的结果(1行*4列数据框),
A_count_all means the number of rows in dataframe df.A.count()
A_sum_all means the df.A.sum()
A_count_a is df.loc[df.B==a,"A"].count()
A_sum_a is df.loc[df.B==a,"A"].sum()
A_count_all A_sum_all A_count_a A_sum_a
0 5 15 3 8
我怎样才能得到这个结果数据框?
最佳答案
您可以使用DataFrame
构造函数:
A_count_all = df.A.count()
A_sum_all = df.A.sum()
A_count_a = df.loc[df.B=='a',"A"].count()
A_sum_a = df.loc[df.B=='a',"A"].sum()
print (pd.DataFrame({'A_count_all':A_count_all,
'A_sum_all':A_sum_all,
'A_count_a':A_count_a,
'A_sum_a':A_sum_a},
index=[0],
columns=['A_count_all','A_sum_all','A_count_a','A_sum_a']))
A_count_all A_sum_all A_count_a A_sum_a
0 5 15 3 8
谢谢Kris
另一种解决方案:
print (pd.DataFrame(data=[[df.A.count(),
df.A.sum(),
df.loc[df.B=='a',"A"].count(),
df.loc[df.B=='a',"A"].sum()]],
columns=['A_count_all','A_sum_all','A_count_a','A_sum_a']))
A_count_all A_sum_all A_count_a A_sum_a
0 5 15 3 8
关于python - 如何在pandas数据框中按特定条件进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39332665/