Python 计算熊猫中常见元素的出现次数

Python 计算熊猫中常见元素的出现次数,python,pandas,Python,Pandas,我有以下数据: data_SP = pd.read_csv(path_ServicePath, sep='\t', header=None) data_SP.columns = ["Id#SP"] print(data_SP) IdSP 0 SH11 1 SH11 2 SH12 3 SH12 4 SH13 5 SH13 6 SH13 7 SH13 ... ... 而且 data_SH = pd.read_csv(path_Servi

我有以下数据:

data_SP = pd.read_csv(path_ServicePath, sep='\t', header=None)
data_SP.columns = ["Id#SP"]
print(data_SP)

    IdSP
0   SH11
1   SH11
2   SH12
3   SH12
4   SH13
5   SH13
6   SH13
7   SH13
... ...
而且

data_SH = pd.read_csv(path_ServiceHierarchy,sep='\t',header=None)
data_SH.columns = ["Id#SH", "ConnectionClient"]
print(data_SH)
IdSH    ConnectionClient
0   SH11    CN01207507
1   SH12    CN01207509
2   SH13    CN01207539
3   SH14    CN01207542
4   SH15    CN01207564
... ...
事实上,我想计算
data\u SH
元素在
data\u SP
中的出现次数。换句话说,
data\u SH.['Id\SH']
中的每个元素在
data\u SP
例如:

SH11 = 2
SH12 = 2
SH13 = 4

让我们使用
Series.where
+
Series.isin
来过滤
IdSP
中也存在于
IDSH
中的值,然后使用
value\u counts
来计算出现的次数:

data_SP['IdSP'].where(lambda x: x.isin(data_SH['IdSH'])).value_counts()
或者,您也可以执行
值\u计数
+
重新索引

data_SP['IdSP'].value_counts().reindex(data_SH['IdSH']).dropna()


对列中的值进行计数的最佳方法如下:

data_SH.value_counts()

另请参阅

这给出了计数,但没有给出数据sh中存在和数据SP中不存在的元素的计数

    data_SP = pd.read_csv(path_ServicePath, sep='\t', header=None)
    data_SP.columns = ["Id#SP"]
    data_SP["count"] = [1]*len(df)
    data_SP=data_SP.groupby("Id#SP").count()
    data_SP = pd.read_csv(path_ServicePath, sep='\t', header=None)
    data_SP.columns = ["Id#SP"]
    data_SP["count"] = [1]*len(df)
    data_SP=data_SP.groupby("Id#SP").count()