python - 基于列值python pandas匹配行
问题描述
我正在处理财务数据,我想匹配两只股票的时间戳。我拥有(或可以生成)的格式是:
带有列的大数据框或带有索引类型的列的[timestamp1, ..., timestamp2, ....]
两个单独dataframe
的列。[timestamp1, ..] [timestamp2, ...]
integer
我想得到一个dataframe
只有行 where的大timestamp1 = timestamp2
数据,并注意可能
df['timestamp1][i] == df['timestamp2][j]
wherei!=j
示例数据框可以是:
2018-01-02-07:00:00, salmon, bacon, eggs, 2018-01-02-07:01:00, peanuts, butter, milk
2018-01-02-07:03:00, tuna, avocado, null, 2018-01-02-07:02:00, bacon, bacon, bacon
2018-01-02-07:04:00, salmon, tuna, tuna, 2018-01-02-07:03:00, lettuce, tomato, bacon
如您所见,这是无法解决的,
df = df[ df['timestamp1] == df['timestamp2'] ]
因为相应时间戳的索引不相等。注意索引类型是int
我确实知道一种非常繁琐的解决方法,但它必须以一种更简单的方式成为可能(例如,可以通过填充所有不存在的时间戳来解决,这样每个时间戳的索引号都相同)
希望你能帮助我,我将永远欠你的债!
解决方案
对于 2 个单独的数据框:
pd.merge(df1, df2, left_on="timestamp1", right_on="timestamp2", how="inner")
推荐阅读
- nltk - NLTK 的 BLEU 分数和 SacreBLEU 有什么区别?
- javascript - 排序数组并从中删除重复的对象
- javascript - 如何在 React 中每 4 位数字后创建自动空格
- django - Django 模型引用具有子属性的多个外键
- php - 产品类别中按字母顺序排列的 woocommerce 分页
- javascript - 聚焦时如何更改边框宽度
- powershell - PowerShell 使用 Get-Member 列出继承的方法
- python - 如何用小数点分割参数
- python-3.x -
如何通过管道安装 djangorestframework - database - 如何使用 Firebase 数据库规则防止节点被删除?