python - 如何根据列中元素的数量从 Pandas 数据框中删除一行

标签 python pandas dataframe string-length

在下面的 pandas.DataFframe 中:

df = 
    alfa    beta   ceta
    a,b,c   c,d,e  g,e,h
    a,b     d,e,f  g,h,k
    j,k     c,k,l  f,k,n

如何删除 alfa 的列值超过 2 个元素的行?这可以使用长度函数来完成,我知道但没有找到具体的答案。

df = df[['alfa'].str.split(',').map(len) < 3]

最佳答案

您可以使用 pandas.DataFrame.apply()

依次对每一行进行测试
print(df[df['alfa'].apply(lambda x: len(x.split(',')) < 3)])

给予:

  alfa   beta   ceta
1  a,b  d,e,f  g,h,k
2  j,k  c,k,l  f,k,n

关于python - 如何根据列中元素的数量从 Pandas 数据框中删除一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42895061/

相关文章:

r - 给定向量长度的向量到 r 中的数据帧

python - 在 PyMongo 中将 $cond 语句与 $project 和聚合一起使用

python - 使用 while 循环运行 django 微服务?

python - 如何将pandas数据框的单行拆分为两行?

r - 如何识别列表中的所有数据框是否具有唯一 ID

Python 3 和 Pandas - 在 DataFrame 中创建新行但为空 DataFrame

python - 不要在 argparse 的 print_help() 中两次显示长选项

python - 返回 如果变量 = 0,则将 "change"更改为 : How do I remove a variable (dollars, 25 美分、一毛钱、镍币、便士)?

python - 从 Pandas DataFrame 进行预测

python - 替换 Pandas 细胞中的一个字符