【问题标题】:Using DataFrame.query() with pandas.Series.str.contains gets AttributeError: 'dict' object has no attribute 'append'将 DataFrame.query() 与 pandas.Series.str.contains 一起使用会得到 AttributeError: 'dict' object has no attribute 'append'
【发布时间】:2019-12-08 18:19:08
【问题描述】:

我使用str.contains() 创建了两个查询字符串,并将它们组合起来,然后将其传递给DataFrame.query()

我得到一个 AttributeError: 'dict' object has no attribute 'append'。

删除regex=False 参数工作正常,但我的数据包含一些'/*'。 所以我需要这个参数来把我的数据当作一个文字字符串。

import pandas as pd

df = pd.DataFrame({'city': ['osaka', ], 'food': ['apple', ],})

querystr1 = 'osaka'
querystr2 = 'apple'

querystr1 = "city.str.contains('" + querystr1 + "', regex=False)"
querystr2 = "food.str.contains('" + querystr2 + "', regex=False)"
querystr = querystr1 + ' & ' + querystr2
print(querystr)

value = df.query(querystr, engine='python').index.values.astype(int)

print(value)
print(value.size)

如何查询无法识别正则表达式的数据框? 有没有更聪明的方法来做到这一点?

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    我不是专家,但删除 regex=False 部分对我有用:

    import pandas as pd
    
    df = pd.DataFrame({'city': ['osaka', ], 'food': ['apple', ],})
    
    querystr1 = 'osaka'
    querystr2 = 'apple'
    
    querystr1 = "city.str.contains('" + querystr1 + "')"
    querystr2 = "food.str.contains('" + querystr2 + "')"
    querystr = querystr1 + ' & ' + querystr2
    print(querystr)
    
    value = df.query(querystr, engine='python').index.values.astype(int)
    

    【讨论】:

      猜你喜欢
      • 2014-05-18
      • 1970-01-01
      • 1970-01-01
      • 2021-12-26
      • 2022-12-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-26
      • 2021-01-08
      相关资源
      最近更新 更多