python – Pandas Group by 2列和T和F的计数实例创建2个新列

python – Pandas Group by 2列和T和F的计数实例创建2个新列,第1张

概述参见英文答案 > How to pivot a dataframe                                    1个 我有一个包含3列的pandas数据框:source_name,dest_address和fall_between.我想按前两列进行分组,并根据fall_between列创建2个新列.这就是df的样子: df source_nam 参见英文答案 > How to pivot a dataframe                                    1个
我有一个包含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个新列所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1192229.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存