python - Pandas:根据某些列的字符串值将数据框拆分为单独的数据框

标签 python string pandas dataframe

还没有找到任何可以应用于我的问题的答案,所以这里是:

我有一个图像的初始数据框,我想根据该图像的描述将其分成两部分,这是“描述”列中的一个字符串。

我的问题是并不是所有的描述都是一样的。这是我的意思的一个例子:

enter image description here

一些图像被加速,而另一些则没有。这就是我想用来分割数据集的标准。

然而,即使是加速和非加速图像描述也各不相同。

我的策略是将其中包含“ACC”的每个字符串(这将涵盖所有加速图像)重命名为“ACCELERATED IMAGE”。

然后我可以这样做:

df_Accl = df[df.Description == "ACCELERATED IMAGE"]
df_NonAccl = df[df.Description != "ACCELERATED IMAGE"]

我怎样才能做到这一点?这只是我想出的一个策略,如果有任何其他更有效的方法可以随意说出来。

最佳答案

您可以使用 str.contains对于 bool 掩码 - 然后按 boolean indexing 过滤.

对于反转掩码使用~,过滤不包含ACC的行:

mask = df.Description.str.contains("ACC")
df_Accl = df[mask]
df_NonAccl = df[~mask]

关于python - Pandas:根据某些列的字符串值将数据框拆分为单独的数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53363819/

相关文章:

python - 类型错误 : 'int' object is not callable python 2. 7.5

python - 在 Python3 中使用 for 循环为 vigenere 密码创建 2D 列表

Python 在日期时间接近纪元的 Windows 上崩溃

python - 字符串匹配在 python 中不起作用

c++ - 为什么我不能用 "\x"初始化字符串

python - Pandas:删除具有 nan 值索引的行

python - 使用另一列的值分配列切片不会引发形状不匹配错误

python-selenium 如何点击一个选项

java - 检查 2 个字符串是否包含相同的字符?

python - 以秒为单位将整列转换为小时( Pandas )