熊猫,比较不同长度的数据帧的值*范围*并写回原始 df
Posted
技术标签:
【中文标题】熊猫,比较不同长度的数据帧的值*范围*并写回原始 df【英文标题】:Pandas, comparing different length dataframes for a value *range* & writing back to original df 【发布时间】:2019-10-12 19:07:55 【问题描述】:我有两个索引长度不同的数据框要比较。
df1: 每日最低股价(每天一个最低价)
df2:每日购买的股票(这里每天购买不止一次)
我想遍历 df2 中每个 date 的 price 行,检查 df2[Price] > df1[low] 并在 df2[ 中添加 YES In_range] 如果是,则为该行,如果不是,则为 NO。
我已经包含了表格的屏幕截图和简单的图表以及您可以看到的描述。 Picture of tables with simple diagram
如果您需要更多说明,请告诉我 :)
谢谢, 艾略特
【问题讨论】:
您认为您可以详细说明或改写以“我在寻找什么”开头的句子吗?我不是 100% 清楚你想要达到的目标。 另外,切勿发布您的数据图像。复制粘贴文本。通过这种方式,人们可以轻松获取它并使用它来测试他们的解决方案。 @Alexander Cecile 我已经用图表对其进行了更新和简化,数据已经过清理。 @ Valentino 我找不到一种以整洁的方式将文本从 xlsx 粘贴到 csv 的好方法。我将快速检查一下如何让每个人都更轻松:) 【参考方案1】:最好的方法是将“低”列添加到第二个数据框。
df2 = df2.merge(df1, on = ['Company', 'time'])
然后在单个数据帧中执行检查很简单
df2['In range'] = df2['Price'] >= df2['low']
【讨论】:
以上是关于熊猫,比较不同长度的数据帧的值*范围*并写回原始 df的主要内容,如果未能解决你的问题,请参考以下文章
更新 QJsonArray 中的值并写回 Qt 中的 Json 文件
基于将另一个单元格与另一个数据帧的单元格-熊猫进行比较,更改一个数据帧中单元格的值