当前位置: 首页 > 知识库问答 >
问题:

如何通过匹配内容列表搜索熊猫中的特定单元格 [重复]

柳宏深
2023-03-14

我是python新手,正在尝试用python制作一个小程序。我的要求:我有一个这样的列表:假期=['2018年1月1日'、'2018年1月26日'、'2018年3月2日'、'2018年3月30日']

现在,我想在dataframe中搜索与我的列表匹配的日期,如“2018年1月26日”,并想将搜索结果保存在单独的数据框中。

我找不到合适的方法来做这件事。请建议

共有2个答案

罗昊明
2023-03-14

您可以使用< code>DataFrame.query方法

holiday = ['1 January 2018','26 January 2018','2 March 2018','30 March 2018']
df.query('date==@holiday')
白博易
2023-03-14

1.字符串匹配

如果您的日期格式匹配,您可以直接进行字符串匹配(虽然这是一种粗略的方式)

df2 = df[df['date'].isin(holiday)]

2.解析日期时间(正确方式)

首先解析日期,然后去比赛!

a、 分析df日期

df['date'] = pd.to_datetime(df['date'], format='%d %B %Y')

b.解析列表中的日期

import datetime as dt
holiday = ['1 January 2018','26 January 2018','2 March 2018','30 March 2018']
holiday_parsed = [dt.strptime(i, format='%d %B %Y') for i in holiday]

然后进行过滤-

df2 = df[df['date'].isin(holiday_parsed)]

.isin()是一种熊猫方便的方法,可让您使用列表搜索熊猫系列。

希望这有帮助!

 类似资料:
  • 我有一些蛋白质结构数据,我已将其转换为Pandas DataFrame。 有一列对应于氨基酸残基,标记为< code>resi。 我想选择<code>resi<code>值出现在其他列表中的所有行。现在,我可以使用以下方法选择存在的行: 如何选择行,以便包含疏水残基的行都被选中,而不在数据帧选择器中写入更多条件?据我所见,Pandas关于字符串方法的文档不允许我传递值列表。

  • 问题内容: 我有一个Excel工作表,它在某些单元格中已经有一些值。 对于前:- 我希望大熊猫写特定的单元格而不接触任何其他单元格,工作表等 这是我尝试的代码。 但是,此代码将删除较旧的单元格值。 我已经提到过:-如何在不覆盖数据的情况下(使用熊猫)写入现有的excel文件? 但是此解决方案不起作用。 问题答案: 我无法使用熊猫来完成我在问题中提出的要求,但是可以使用来解决它。 我将编写一些代码片

  • 因此,我有一个如下所示的数据frame: 我想检查经度列中的单元格是否有N或s。

  • 问题内容: 我有一个名为的数据框。如何重命名唯一的一列标题?例如到? 问题答案: data.rename(columns={‘gdp’:’log(gdp)’}, inplace=True) 在它接受一个字典作为一个PARAM演出,所以你只是传递一个字典一次入境。

  • 这是html代码: 我想访问第5行第2列的内容。 我可以通过直接访问给出行和列编号的单元格来实现这一点:driver。findElement(By.xpath(“//table[@id='listMainTable']//tr[5]/td[2]”); 但是,我想通过使用“包含”访问单元格的内容。 我尝试了以下2种方法: 驾驶员findElement(By.xpath(“//table[@id='l

  • 给定一个列为“BoolCol”的数据帧,我们想要查找数据帧的索引,其中“BoolCol”的值 == True 我目前有一种迭代的方法来完成它,它非常有效: 但这不是熊猫的正确方法。经过一些研究,我目前正在使用以下代码: 这个给了我一个索引列表,但是它们不匹配,当我通过执行以下操作来检查它们时: 结果其实是假的!! 熊猫的正确做法是什么?