python - 从2个df列python中查找相同的值
问题描述
我有两个不同的 dfs 以下列:
col1 col2
0 programming 0 programming
1 chess 1 python
2 leadership 2 leadership
3 abba
4 games
我想找出col1
当前值的百分比col2
为此,我想我可以构造一个新的 df ,它将包含相同的值,然后是len
to len(col2)
。首先我想得到这个:
col3
0 programming
1 leadership
这是我尝试过的,但我不想使用两个for
循环
bb=[]
for i in company.col2:
for b in student.col1:
if i==b:
bb.append(i)
解决方案
>>> df1 = pd.DataFrame(["programming", "chess", "leadership"], columns=["col1"])
>>> df2 = pd.DataFrame(["programming", "python", "leadership", "abba", "games"], columns=["col2"])
查找 的哪些值df1['col1']
正在df2['col2']
使用中isin
。结果是一个布尔列。用于sum
查找值的数量:
>>> df1['col1'].isin(df2['col2']).sum()
用于size
查找其中的元素数df2
并除以:
>>> df1['col1'].isin(df2['col2']).sum() / df2.size
推荐阅读
- python - 在条件下将大数据框拆分为多个
- android - 如何在 Android 中从 liferay 6 登录屏幕中获取身份验证令牌,以便将其与 REST API 调用一起使用?
- python - 构建包失败
- android - 微光布局 api 19
- php - 从 laravel 中的条带 php 包中模拟条带类
- python - 3 个数字中最大的一个代码不适用于特定数字
- powershell - How to recursively append to file name in powershell?
- dart - 带有包装数组的测试流
- java - spring boot rest api 的指标
- python - How to filter rows containing a similar pattern