根据日期从另一个数据框中过滤熊猫数据框

肖恩·麦卡锡(Sean McCarthy)

假设我有以下两个表。请注意,第二张表又延续了15天到2月:

dates1 = pd.DataFrame(data=pd.date_range('2018-1-1 00:00', '2018-1-31 23:59', freq='h'), columns=['date'])
dates2 = pd.DataFrame(data=pd.date_range('2018-1-1 00:00', '2018-2-15 23:59', freq='h'), columns=['date'])

我想根据第一个数据帧中的最新日期来过滤第二个数据帧。在这里,我从dates1表中找到最近的日期。结果是一个时间戳:

most_recent_dates1 = dates1['date'].max()
Timestamp('2018-01-31 23:00:00')

然后,我尝试如下过滤第二个表:

dates3 = dates2[[dates2['date'] <= most_recent_dates1]]

但是我收到以下错误:

ValueError: Item wrong length 1 instead of 1104.

如何使用一个时间戳从另一个表中过滤一个表,而不会出现此错误?我知道我可以使用内部联接(pandas.merge)来做到这一点,但是有些时候我不想使用内部联接。

pp

熊猫数据框索引允许将布尔系列/数组作为输入。因此,您不需要使用系列列表您可以直接使用布尔序列进行索引:

dates3 = dates2[dates2['date'] <= most_recent_dates1]

正如错误所指出的,您提供了一个长度为1的项目,而它期望一个与数据框具有相同长度的项目。

有关更多信息,请参见官方文档中的布尔索引

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据另一个数据框中的日期过滤数据框中的值

根据python中另一个数据框的2列过滤数据框

使用熊猫从另一个数据框中的信息中过滤一个数据框

熊猫-使用另一个数据框过滤数据框

熊猫数据框-通过另一个数据框的值过滤行

使用另一个数据框过滤熊猫数据框

根据熊猫中的另一个数据框更改列中的值

根据日期范围将数据框中的值除以另一个数据框中的日期

根据另一个数据框向熊猫数据框列添加值

根据另一个数据框的列填充熊猫数据框列

根据另一个数据框创建新的熊猫数据框

根据另一个数据框生成熊猫数据框

根据另一个数据框的列值过滤数据框

根据另一个数据框的多个列过滤数据框

另一个数据框的熊猫数据框总和日期范围

如何根据熊猫中另一个数据框中的列对数据框进行排序?

熊猫:根据另一个数据框中的值在数据框中添加新列

熊猫:根据条件将数据框中的值替换为另一个数据框中的值

根据另一个数据框中的最近位置填充熊猫数据框中的缺失值

根据另一个数据框中的相应值更改熊猫数据框中的值

熊猫根据另一个数据框中的匹配列填充新的数据框列

根据另一个数据框值从熊猫数据框的行中删除系列值

如何根据另一个数据框中的查找值替换熊猫数据框值?

根据另一个数据框中的日期条件创建新列

根据熊猫中的其他数据框过滤一个数据框

根据日期和月份从另一个数据框索引重新排列数据框中的组

如何根据另一个数据框中的日期时间条件从数据框中选择列的值?

从另一个数据框中更新熊猫数据框中的特定值

熊猫数据框将值除以另一个数据框中的值