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