我有一个很大的时间序列数据帧(称为 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既可以是字符串,也可以是列表。但我希望他们都是线。我怎么能这么做?我还想去掉结尾处的空白。 输入 预期产出