python - 如果值在列数据框中,则 Pandas 获取行

标签 python pandas numpy data-science text-classification

我有信息增益数据框和 tf 数据框。数据看起来像这样:

信息增益

    Term      IG
0   alqur     0.641328
1   an        0.641328
2   ayatayat  0.641328
3   bagai     0.641328
4   bantai    0.641328
5   besar     0.641328

词频

            A   B   A+B
ahli        1   0   1
alas        1   0   1
alqur       0   1   1
an          0   1   1
ayatayat    0   1   1
...        ... ... ...
terus       0   1   1
tuduh       0   1   1
tulis       1   0   1
ulama       1   0   1
upaya       0   1   1

假设表格信息增益 = IG 和表 tf = TF

我想检查 IG.Term 是否在 TF.index 中,然后获取行值,所以它应该是这样的:

    Term      A    B    A+B
0   alqur     0    1    1
1   an        0    1    1
2   ayatayat  0    1    1
3   bagai     1    0    1
4   bantai    1    1    2
5   besar     1    0    1

注意:我不再需要 IG 值了

最佳答案

Series.isin 过滤与 boolean indexing并将索引转换为列:

df = TF[TF.index.isin(IG['Term'])].rename_axis('Term').reset_index()
print (df)
       Term  A  B  A+B
0     alqur  0  1    1
1        an  0  1    1
2  ayatayat  0  1    1

或者使用DataFrame.merge使用默认内部连接:

df = IG[['Term']].merge(TF, left_on='Term', right_index=True)
print (df)
       Term  A  B  A+B
0     alqur  0  1    1
1        an  0  1    1
2  ayatayat  0  1    1

关于python - 如果值在列数据框中,则 Pandas 获取行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58813515/

相关文章:

python - 在文本文件中查找数字,然后添加它们,同时查看最小数字在哪里

python - 多级列上的 Pandas get_dummies()

python - pandas:如何找到列中每个类别的最大 n 个值

python - 将 MySQL 表数据转储到 csv 并转换字符编码的最佳方法是什么?

python - 如何根据正面和负面关键字的数量对 Pandas 数据框中的文本进行分类

python - 根据列定义的范围合并数据框

python - 沿列而不是行的数据框 bool 选择

python - Matplotlib:将绘图保存到 numpy 数组

python - 使用 numpy.save (和 savez)出现意外类型错误

python - numpy 数组中相邻值的加权和