python - 您可以根据特征值在另一个数据框中出现的次数来复制 pandas 数据框中的行吗?
问题描述
所以我有两个熊猫数据框。一个是名称和值的列表(每个名称出现一次):
名称 | 价值观 |
---|---|
一个 | 0 |
b | 10 |
C | 0 |
d | 10 |
e | 0 |
F | 10 |
第二个与第一个数据帧具有相同的名称值,但每个名称可以以随机顺序出现多次或 0 次。
名称 |
---|
一个 |
b |
C |
C |
F |
有没有一种方法可以从第一个数据集中复制和删除行,因此每个名称在第一个数据集中出现的次数与该名称在第二个数据集中出现的次数相同。例如:
名称 | 价值观 |
---|---|
一个 | 0 |
b | 10 |
C | 0 |
C | 0 |
F | 10 |
顺便说一句,所有名称均按字母顺序排列。
我能想到的唯一方法是从第二个数据帧的名称列中创建一个 numpy 数组,然后遍历该数组,获取第一个数据帧的行,其中名称列等于每个索引处的数组值,并将该行添加到新的数据框中。
但这似乎需要很长时间,而且我有相当大的数据集(50k 行),所以如果有人有更快的建议,将不胜感激。
解决方案
df2.merge(df1, on="Names")
输出
Names Values
0 a 0
1 b 10
2 c 0
3 c 0
4 f 10
说明
我们可以将 df2 和 df1 合并为left or inner
连接。我们inner join
在上述解决方案中使用了默认值。
推荐阅读
- c# - 将 System.Int32[] 从 pythonnet.netstandard 转换为 python 脚本中的 numpy 数组
- json - 如何以特定的 json 格式获取 bigquery 的输出
- javascript - 带有 Formik editorState.getCurrentContent 的 Draft.js 不是函数
- python - matplotlib中y轴非常拥挤,如何隐藏y轴值?
- python - 使用获取密码组件后如何将Entry组件重置为普通文本?
- html - 在线使用css href是可以的,然后下载css文件并在本地使用它根本不起作用
- javascript - nextjs getServerSideProps 显示加载
- python-3.x - 根据列表中存在的列中的值过滤 Pandas 行,其中列名是变量
- stm32 - stm32h7 rtc 掉电后复位(vbat 已连接)
- php - 支持标点符号的 PHP 计数词频