Python:在 DataFrame 中,如何循环遍历一列的所有字符串并检查它们是否出现在另一列中并对它们进行计数?

标签 python pandas dataframe

我有一个数据框,想要循环遍历列 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/

相关文章:

python - 将 QiMessaging 服务应用程序打包并部署到 Pepper/Nao 机器人的正确方法是什么?

python - Pandas、scipy 和 numpy 的 MAD 结果不同

python - Pandas 版本 0.22.0 - drop_duplicates() 得到意外的关键字参数 'keep'

python - 基于 Pandas 数据框中分组的总和?

python - 如何在 Django 中使用一个提交按钮提交多个表单?

python - Windows 中的路径和权限

python - 如何使用 Python::Windows 列出和读取所有已安装的证书 (SSL)

python - Pandas 索引 isin 方法

python - 对于每个日期 - 是否在任何提供的日期范围内?

python Pandas : Change value associated with each first day entry in every month