我必须使用不同的数据框,两者都包含一列对象类型。两列都存在值的组合。我想知道第二个数据帧中的组合在第一个数据帧的组合中出现的频率。
我尝试了不同的变体:
df1.Column1.str.count(df2['Column2'])
但我不断收到错误:
TypeError: 'Series' objects are mutable, thus they cannot be hashed
df1 =
Index Column1
0 BIER, VRUCHTENSAP, SMOOTHIE
1 FRISDRANK, KOFFIE
2 KOFFIE, WATER
3 KOFFIE, THEE
4 FRISDRANK, KOFFIE
5 HOT CHOCOLATE, KOFFIE
6 KOFFIE, THEE
7 FRISDRANK, KOFFIE
8 BIER, FRISDRANK
9 FRISDRANK, KOFFIE
10 BIER, MIX DRINKS, THEE
11 KOFFIE, THEE
df2 =
Index Column2
1 KOFFIE, SPECIAAL BIER
2 KOFFIE, THEE
3 KOFFIE, WATER
预期结果是一个数据帧,显示 df2 中值的计数以及它们在 df1 中出现的时间:
Index Count
KOFFIE, SPECIAAL BIER 0
KOFFIE, THEE 3
KOFFIE, WATER 1
希望有人能帮助我。
最佳答案
如果您正在寻找完全匹配,您可以使用以下列表理解,使用 pd.Series.eq
来计算完全匹配的数量。 :
counts = [df1.Column1.eq(i).sum() for i in df2.Column2]
pd.DataFrame({'Count':counts}, df2.Column2)
Count
Column2
KOFFIE, SPECIAAL BIER 0
KOFFIE, THEE 3
KOFFIE, WATERE 1
关于python - 如何计算一个 df.column 的时间值是另一 df.column 的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54422614/