这是一件很简单的事,但我不认为这件事已经在《熊猫》或《熊猫》的文档中有所涉及。在
数据
包含城市数据的两个数据帧。数据框UK
包含一个用于英国城市名称的变量。它已分组,因此没有重复的城市名称。这是此city
变量的截断示例(不是完整的数据帧):
city
Hamilton
Edinburgh
Bury
...
DataFrameUS
包含一个对应的美国城市名称变量。它的确实有重复的城市名称,但这些名称实际上不是重复的值,因为有许多城市具有相同的名称。再举一个截短的例子:
(注意:我的数据中变量的长度不同。)
目标
在UK
数据帧中创建一个新变量,该变量是US
城市变量中的城市名称与UK
城市变量中的城市名称匹配时的整数计数。在
下面显示了我要使用的输出示例。比如说一个叫汉密尔顿的英国城市,在美国有两个叫汉密尔顿的城市。一个叫爱丁堡的英国城市在美国有3场比赛。两个火柴给伯里。在
city count
Hamilton 2
Edinburgh 3
Bury 2
我的困境
如果我这么做。。。在
uk['count'] = uk['city'].isin(us['city']).astype(int)
新变量是一个二进制1或0,表示存在匹配项,该匹配项已达到一半。不过,我正在努力使用Pandas语法来返回匹配项的计数。我尝试过添加value_counts
和unique的变体,但这些都没有起作用。也许我走错了路。在
使用^{} 计算} 将这些计数应用到
US['city']
中每个城市的出现次数,然后使用^{UK['city']
中的相应值:如果
UK['city']
中有一个不在US['city']
中的城市,那么上面的操作将为该城市的count列分配一个NaN
值。在相关问题 更多 >
编程相关推荐