检索超过5个字符串的列中的所有值 - pandas dataframe

时间:2017-03-01 19:06:16

标签: python pandas dataframe

我在dataframe中有一个列 - df其中所有值都应该是5个字符串/字符的长度但是由于我的代码中的错误,一些有错误的值,字符串的长度低于5或大于5.是否存在一种只检索这些列的方法吗?

3 个答案:

答案 0 :(得分:2)

对于下一个问题,请提供示例df和预期输出。

df = pd.DataFrame({'a' : [1, 2, 3], 'b' : ["jasdjdj", "abcde", "hmmamamam"]})
df[df.b.str.len() != 5]
#gives:

   a          b
0  1    jasdjdj
2  3  hmmamamam

答案 1 :(得分:1)

我认为你正在寻找一个简单的掩蔽操作:

filter = lambda string: len(string) == 5
mask = df[col_to_filter].apply(filter, 1) # Return a boolean vector
new_df = df[mask].copy() # Create a new dataframe

您可以应用相反的过滤器来查找原始数据框上长度为5的项目。

有关df.apply()的详细信息,请查看此处:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.apply.html

答案 2 :(得分:1)

这对你有什么用?这将返回值满足条件的数据帧。

new_DF= your_df[your_df['COLUMN TO CHECK HERE'].str.len() != 5]
print(new_DF)