我有一个包含3列的pandas数据框:source_name,dest_address和fall_between.我想按前两列进行分组,并根据fall_between列创建2个新列.这就是df的样子:
df source_name dest_address fall_between0 source_1 72.21.215.90 False1 source_1 72.21.215.90 False2 source_1 72.21.215.90 False3 source_1 72.21.215.90 False4 source_1 131.107.0.89 False5 source_1 131.107.0.89 False6 source_2 69.63.191.1 False7 source_2 69.63.191.1 True8 source_2 69.63.191.1 True9 source_2 69.63.191.1 True10 source_2 69.63.191.1 True
期望的输出:
df source_name dest_address true_count false_count0 source_1 72.21.215.90 0 41 source_1 131.107.0.89 0 2 2 source_2 69.63.191.1 4 1
我正在使用以下内容,但如果它是0,我没有得到计数.有什么更好的方法呢?
df[df['fall_between'] == True].groupby(['source_name','dest_address']).size().reset_index(name='true_count')df[df['fall_between'] == False].groupby(['source_name','dest_address']).size().reset_index(name='false_count')解决方法 你可以使用
pd.crosstab
: pd.crosstab([df.source_name,df.dest_address],df.fall_between).reset_index()fall_between source_name dest_address False True0 source_1 131.107.0.89 2 01 source_1 72.21.215.90 4 02 source_2 69.63.191.1 1 4总结
以上是内存溢出为你收集整理的python – Pandas Group by 2列和T和F的计数实例创建2个新列全部内容,希望文章能够帮你解决python – Pandas Group by 2列和T和F的计数实例创建2个新列所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)