当前位置: 首页 > 面试题库 >

根据Pandas中的字符串列表过滤出行

爱花蜂
2023-03-14
问题内容

我有一个很大的时间序列数据帧(称为 df ),前5条记录如下所示:

df

         stn     years_of_data  total_minutes avg_daily TOA_daily   K_daily
date                        
1900-01-14  AlberniElementary      4    5745    34.100  114.600 0.298
1900-01-14  AlberniWeather         6    7129    29.500  114.600 0.257
1900-01-14  Arbutus                8    11174   30.500  114.600 0.266
1900-01-14  Arrowview              7    10080   27.600  114.600 0.241
1900-01-14  Bayside                7    9745    33.800  114.600 0.295

目标:

我正在尝试删除 “ stn” 列中存在列表中 任何 字符串
行。因此,我基本上是在尝试过滤此数据集,以使其不包含以下列表中包含任何字符串的行。

尝试:

remove_list = ['Arbutus','Bayside']

cleaned = df[df['stn'].str.contains('remove_list')]

返回值:

出[78]:

stn years_of_data   total_minutes   avg_daily   TOA_daily   K_daily
date

没有!

我尝试了一些引号,方括号甚至是lambda函数的组合;尽管我还很新,所以可能没有正确使用语法。


问题答案:

使用isin:

cleaned = df[~df['stn'].isin(remove_list)]

In [7]:

remove_list = ['Arbutus','Bayside']
df[~df['stn'].isin(remove_list)]
Out[7]:
                          stn  years_of_data  total_minutes  avg_daily  \
date                                                                     
1900-01-14  AlberniElementary              4           5745       34.1   
1900-01-14     AlberniWeather              6           7129       29.5   
1900-01-14          Arrowview              7          10080       27.6

            TOA_daily  K_daily  
date                            
1900-01-14      114.6    0.298  
1900-01-14      114.6    0.257  
1900-01-14      114.6    0.241


 类似资料:
  • 问题内容: 我喜欢过滤掉字符串长度不等于10的数据。 如果我尝试过滤掉列A或B的字符串长度不等于10的任何行,则尝试这样做。 这工作缓慢,但正在工作。 但是,当A中的数据不是字符串而是数字(有时在read_csv读取输入文件时解释为数字)时,有时会产生错误。 我相信应该有更高效,更优雅的代码来代替。 根据下面的答案和评论,我找到的最简单的解决方案是: 要么 要么 问题答案: 应用于filex.cs

  • 问题内容: 如果不使用,我将如何过滤掉没有的数据? 假设我有一个矩阵,客户可以在其中填写表格或其任何变体,而其他人则将其留空: 输出: 我将如何过滤出值,以便可以像这样使用结果: 我猜我需要类似的东西,但tilda不适用于字符串。 问题答案: 放下它们: 这将删除所有至少有两个non-的行。 然后,您可以将名称放在哪里: 编辑 实际查看您最初想要的是什么,而无需调用即可: 更新 3年后的这个问题,

  • 如果不使用我如何在没有的情况下过滤数据? 假设我有一个矩阵,客户将填写或其任何变体,其他人则将其留空: 输出: 我如何过滤掉值,这样我就可以得到这样的结果: 我想我需要像但是tilda不能处理字符串。

  • 问题内容: 我有一个字典列表和每个字典的key(比方说)“型”,这可以有值,等我的目标是过滤掉这些字典到同一个字典列表,但只有一个的那些某些“类型”。我想我真的很在理解问题。 因此,示例列表如下所示: 我有一个键值列表。举例来说: 预期的结果列表如下所示: 我知道我可以用一组for循环来做到这一点。我知道必须有一个更简单的方法。我发现此问题有很多不同的风格,但没有一个完全符合要求并回答了这个问题。

  • 问题内容: 我有一个值列表,需要根据给定的布尔值列表中的值进行过滤: 我使用以下行生成一个新的过滤列表: 结果是: 这条线工作正常,但是(对我而言)看起来有点过大了,我想知道是否有更简单的方法来实现这一目标。 忠告 以下答案提供了两个好的建议: 1-不要像我一样命名列表,因为它是内置函数。 2-不要比较像我做的事情,因为这是不必要的。只需使用就足够了。 问题答案: 您正在寻找: 时序比较(py3.

  • 我有一个名为的df,如下所示。tag_position既可以是字符串,也可以是列表。但我希望他们都是线。我怎么能这么做?我还想去掉结尾处的空白。 输入 预期产出