Pandas:基于某一列的字符串值将Dataframe拆分为单独的Dataframe

5

我还没有找到适用于我的问题的答案,所以我来提问:

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

我的问题是,并非所有描述都是相同的。以下是我所说的例子:

enter image description here

有些图像加速,有些则不是。这就是我想要使用的标准来分割数据集。

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

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

然后我可以执行以下操作:

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

我该如何实现这个目标?这只是我想出的一种策略,如果有更高效的方法,请随意提出。


1
请尽量避免使用图片,并在下次放置一些易于加载的数据。 - Franco Piccolo
2个回答

8
您可以使用str.contains生成布尔掩码,然后通过布尔索引进行过滤。

要反转掩码,请使用~,过滤不含ACC的行:

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

1
这个有效(而且比我原来想的策略更高效)! - J. Devez

0

您可以使用contains函数查找包含子字符串ACC的行:

df['Description'].str.contains('ACC')

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接