我有一个数据框,想要循环遍历列 c2
中的所有单元格,并计算每个整个字符串在另一列 c1
中出现的次数(如果存在) 。然后打印结果。
示例 df:
id c1 c2
0 luke skywalker han solo
1 leia organa r2d2
2 darth vader finn
3 han solo the emporer
4 han solo c3po
5 finn leia organa
6 r2d2 darth vader
打印结果示例:
han solo 2
r2d2 1
finn 1
the emporer 0
c3po 0
leia organa 1
darth vader 1
我正在使用带有 python 和 pandas 的 Jupyter 笔记本。谢谢!
最佳答案
你可以使用一些 Numpy 魔法。
使用count
和广播来比较每个组合。
from numpy.core.defchararray import count
c1 = df.c1.values.astype(str)
c2 = df.c2.values.astype(str)
pd.Series(
count(c1, c2[:, None]).sum(1),
c2
)
han solo 2
r2d2 1
finn 1
the emporer 0
c3po 0
leia organa 1
darth vader 1
dtype: int64
关于Python:在 DataFrame 中,如何循环遍历一列的所有字符串并检查它们是否出现在另一列中并对它们进行计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48817935/