【问题标题】:Select rows in Pandas dataframe with empty lists in specific column [duplicate]在 Pandas 数据框中选择特定列中具有空列表的行 [重复]
【发布时间】:2018-12-04 15:06:12
【问题描述】:

我有一个如下所示的数据框:

                                        parte_passiva       name
0                                                  []       Charles     
1              [INDUSTRIAS MENTEN DE CARTONAGEM LTDA]       Carlos      
2                 [MABE BRASIL ELETRODOMÉSTICOS LTDA]       Mark
3                            [ACUMULADORES AJAX LTDA]       Marcos        
...

请注意,“parte_passiva”列由列表组成。 我想选择那些有一个空列表的行,所以我正在尝试:

df2=df1.loc[(df1['parte_passiva'] == [])]

但是我收到了这个错误:

 ValueError: Arrays were different lengths: 60 vs 0

有什么想法可以超越这个阶段吗?

【问题讨论】:

  • 使用字符串长度检查 == 0

标签: python pandas


【解决方案1】:

通过str.len选择它们

df2=df1.loc[(df1['parte_passiva'].str.len() == 0),:]

或者使用

df1[~df1.parte_passiva.astype(bool)]

【讨论】:

  • 谢谢,它成功了。问题:如果我想在 .loc 中添加一个 OR,比如 df1.loc[((df1['parte_passiva'].str.len() == 0),:) | ((df1['parte_ativa'].str.len() == 0),:)],什么是正确的合成器?
  • @abutremutante 喜欢这个df1.loc[(df1['some1'].str.len() == 0) | (df1['some2'].str.len() == 0),:]
猜你喜欢
  • 2020-01-10
  • 2015-03-29
  • 1970-01-01
  • 2020-11-15
  • 2018-08-23
  • 2014-11-26
  • 2021-07-15
  • 2016-03-13
  • 2022-11-01
相关资源
最近更新 更多