熊猫计算另一个数据框列中列值的频率

安克

我想从另一个数据框中计算一个数据框中的值的频率。现在,我的代码如下:

df2["freq"] = df1[["col1"]].groupby(df2["col2"])["col1"].transform('count')

但是,对于df2 [“ col2”]中的所有值,即使对于df1 [“ col1”]中不存在的值,它的频率也为1.0。

df1:

            col1
0            636  
1            636  
2            801  
3            802  

df2:

            col2
0            636  
1            734  
2            801  
3            803  

添加freq列后的df2:

            col2    freq
0            636    1.0
1            734    1.0
2            801    1.0
3            803    1.0

我真正想要的是:

            col2    freq
0            636     2
1            734     0
2            801     1
3            803     0

我是熊猫新手,所以我没有做错我的事情。任何帮助表示赞赏!谢谢!

耶斯列尔

Series.map按创建人使用的系列Series.value_counts,最后将缺少的值替换为0

df2["freq"] = df2["col2"].map(df1["col1"].value_counts()).fillna(0).astype(int)
print (df2)
   col2  freq
0   636     2
1   734     0
2   801     1
3   803     0

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据另一个数据框计算数据框中的列值

根据熊猫中的另一个数据框更改列中的值

熊猫:根据另一个数据框中的值在数据框中添加新列

熊猫会在一个数据框中删除与另一个数据框的一列中的行具有共同值的行

根据关键列值熊猫将一个数据框中的行与另一个数据框中的行匹配

选择一个范围内的数据框的列值,并将其放在熊猫中另一个数据框的适当列中

根据另一个数据框python熊猫替换列值-更好的方法?

从另一个数据框熊猫获取相应的列值

基于来自另一个数据框熊猫的匹配值的新列

如何删除熊猫数据框中的NaN值,该列的列在另一个数据框中被引用为表示缺少或未知值的编码值

根据另一个数据集中的列值在一个数据框中创建列

熊猫,从另一个数据框中添加列读取值

用另一个数据框熊猫中的每两列重命名

熊猫:删除列与另一个数据框中显示的行

根据另一个数据框的列填充熊猫数据框列

熊猫从第二个数据框中选择的列,其中另一个列的值存在于主数据框中

在从另一个列值派生的数据框中设置计算的列值

根据另一个数据框中的列分配值列

如何基于另一个数据框中的列值创建布尔列

熊猫根据另一个数据框中的匹配列填充新的数据框列

大熊猫使用另一个数据框列在数据框列中填充NaN

熊猫数据框将值除以另一个数据框中的值

根据来自另一个数据框的查找值创建一个熊猫列

选择索引值等于熊猫中另一个数据框中的列的索引值的多级索引数据框中的行

根据列中的值填充另一个数据框的值

从另一个数据框中更新熊猫数据框中的特定值

从另一个数据框中的列值替换pandas数据框中的列值

使用字典作为参考来从另一个数据框中计算熊猫数据框中的新列数

使用另一个数据框中的指定值填充一列