首页 > 解决方案 > Pandas:根据某些列的字符串值将数据框拆分为单独的数据框

问题描述

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

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

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

在此处输入图像描述

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

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

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

然后我可以这样做:

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

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

标签: pythonstringpandasdataframe

解决方案


您可以使用str.contains布尔掩码 - 然后过滤boolean indexing

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

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

推荐阅读