我有一个数据框,其中包含一列,该列的字符串格式为 XXX/XX/XXX。我想删除“/”之间的字符串长度不等于 2 的所有行。
我收到“关键错误:True”,代码如下:
df_issues = df_new[len(df_new['Job'].str.split('/')[1]) != 2 ]
我的方法是创建一个系列,其中包含第一个“/”之后的字符串长度不等于 2 的所有行。
感谢您的帮助。
最佳答案
你这里有一些错误:
-
len(x) != 2
将返回一个 bool 值。即您尝试使用df_new[True]
进行索引,这会返回一个关键错误,因为形状不兼容(您需要沿着行的索引数组,例如df_new[[True, False, True...]]
) - 您需要
str
再次访问器以进一步在第二个列表上建立索引
使用:
df_new[df_new['Job'].str.split(r'/').str[1].str.len().eq(2.)]
或者我们也可以使用 str.contains
:
# corrected with @jon's remarks
df_new[df_new['Job'].str.contains(r'^.{3}/.{2}/.{3}$',na=False)]
关于python - 从数据框中删除不包含特定长度字符串的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61289419/