使用熊猫根据条件来计算某项出现在单独数据框中的频率

安迪·米切尔(Andy Mitchell)

我有2个数据框,第一个是这样,ID是唯一值。

 ID     Etc     Etc2
 001    foo     bar
 002    foo2    bar2
 003    foo3    bar3

第二个是这样的,其中ID不是唯一值,也不保证df1中的所有ID都出现在此df(df2)中。

ID   Category    
001  "Red"
001  "Red"
003  "Blue"
003  "Red"
004  "Red"

我想做的是在第一个数据帧中添加一列,例如,如果ID与第一个数据帧的ID列中的ID匹配,则使用“红色”提供类别计数。基本上就像excel中的索引匹配。

第二个表中的ID可以出现多次,但在第一个表中只能出现一次。第二个表中的类别值可以不同。

我以为我用以下方法破解了它,但这并没有按预期工作。

new_df= pd.crosstab (df2['ID'],df2['CATEGORY'])

但这给了我一个长度与初始数据帧不同的系列(不是第一个数据帧中的所有ID都出现在第二个数据帧中)

我也尝试了以下方法,但再次无法按预期工作。

new_df = pd.crosstab(df1['SK_ID_CURR'],df2['NAME_CONTRACT_STATUS'])
耶斯列尔

我相信need join,没有匹配的值会得到NaNs行:

new_df= pd.crosstab (df2['ID'],df2['Category'])
print (new_df)
Category  Blue  Red
ID                 
1            0    2
3            1    1
4            0    1

df = df1.join(new_df, on='ID')
print (df)
   ID   Etc  Etc2  Blue  Red
0   1   foo   bar   0.0  2.0
1   2  foo2  bar2   NaN  NaN
2   3  foo3  bar3   1.0  1.0

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

计算直到第一个值出现在熊猫数据框中的天数

如果条件出现在任何行/列中,则读取熊猫数据框

根据另一列中的唯一值计算项目出现在熊猫数据框中的一列中的次数

尝试使用相同值出现在多列中的 cumsum() 熊猫数据框

计算熊猫数据框中单词的出现频率

使用字典定义条件来统计熊猫数据框中的出现次数

R计算组中有多少元素出现在数据框中

计算多个子字符串出现在数据框列中的次数

如何计算一个城市每年出现在数据框中的次数?

熊猫组合数据框,删除行,该行的值未出现在所有初始数据框中

数据框仅出现在控制台中,而不出现在环境中(Rstudio)

R:从数据框中提取行,其中一列中的值出现在单独的向量中

R-计算出现在数据框中并分组的列表中单词的总出现次数

计算列表中单词出现在字符串中的频率

计算频率值出现在DF中给定的“集合”中

如何计算特定值出现在 R 中 data.frame 列中的频率

使用python在单独的数据框中查找的值来计算新数据框列中的值

如何根据列表中的项目是否出现在字段中的任何位置从数据框中删除列

当列名“ n”出现在数据框中时,使用`dplyr :: tally`

创建一个熊猫数据透视表以计算项目一起出现在列表中的次数

计算值以百分比、多列、python 出现在列中的频率

列出所有出现在一行中的名称对并计算它们的频率

是否可以避免在熊猫合并中正确数据框的连接列出现在输出中?

如何根据熊猫数据框中的频率创建wordcloud

如何计算熊猫数据框中列值更改的频率

如何计算熊猫数据框中列值更改的频率?

使用熊猫在数据框中出现值的频率

当键出现在地图中时,有条件地替换数据框中的值

如果行名称出现在熊猫中另一个数据框的列名称中,请选择数据框的行值