【问题标题】:Pandas.Series.Str.Find mixed in with x in a listPandas.Series.Str.Find 在列表中与 x 混合
【发布时间】:2021-07-24 04:12:33
【问题描述】:

下午好!

长话短说,我正在尝试根据评论数据集对手机的某些功能进行情感分析。我正在将它与 .loc 函数协调,它以前工作过,但这是一个特定列表而不是字符串。我正在尝试将此链接到列表中的任何 x,其中 x 是一个列表。

这是我所拥有的:

Battery = ['battery', 'charge', 'juice', 'talk time', 'hours', 'minutes']
batt = apple['Reviews'].str.lower().str.find(x in Battery)!=-1

返回的错误是:

AttributeError: Can only use .str accessor with string values.

我这样做是因为它不喜欢我只是在 Battery 中放入 Battery 而不是 x。

有什么建议吗?再次感谢!

如果我运行分配的变量,预期的输出将是所有具有任何关键字的行。 (电池内的 x)。因此,任何包含充电、果汁等内容的行都会弹出。

【问题讨论】:

  • 您能否编辑您的问题并将(小)示例输入和预期输出放在那里?
  • 我进行了编辑以包含预期的输出。谢谢!
  • 我的意思是把样本(小)输入数据框(文本格式,所以我们可以复制粘贴)和输出数据框(也是文本格式)。
  • 我在另一台电脑上。不幸的是,我现在真的做不到。
  • 这些列是项目编号、品牌、型号、评论、价格、评级、数据、已验证、评论标题、评论、有用。第一行写着 B07RT1X4FJ, Apple, AppleiPhoneXS 256 GB, Gray For AT&T (Renewed), 198, 0.00, 5. 2019-07-20, 已验证, 基本完美, 全新, 我有点害怕我的购买, 2

标签: python pandas string list attributeerror


【解决方案1】:

如果apple['Review']只是一列字符串,你可以检查str.contains()

鉴于这些Batteryapple

Battery = ['battery', 'charge', 'juice', 'talk time', 'hours', 'minutes']
apple = pd.DataFrame({'Review': ['abc battery xyz', 'foo bar', 'orange juice bar', 'talk time']})

#              Review
# 0   abc battery xyz
# 1           foo bar
# 2  orange juice bar
# 3         talk time

这将是batt 输出:

batt = apple[apple['Review'].str.lower().str.contains('|'.join(Battery))]

#              Review
# 0   abc battery xyz
# 2  orange juice bar
# 3         talk time

如果apple['Review']是一列列表,你可以先用str.join(' ')加入它们,然后再检查str.contains()

batt = apple[apple['Review'].str.join(' ').str.lower().str.contains('|'.join(Battery))]

【讨论】:

  • apple['Reviews'] 是一个只包含字符串的系列,所以它让我相信这是第二个,但要检查一下,这将使用电池列表中的任何项目,对吗?
  • 我也刚刚尝试了这两行代码,看起来我有同样的错误。如果我上网速度不够快,我会在上网时更新或重新提交。
  • 这是一张图片。
  • @ESarousi Reviews 列是一个数字评级。 Review(没有s)是带有字符串的列。如果您将Reviews 替换为Review,代码应该可以工作。
  • 啊,你完全正确!谢天谢地。这对我来说是一个愚蠢的错误。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-09
  • 2019-06-13
  • 2012-11-19
  • 2023-03-09
  • 1970-01-01
相关资源
最近更新 更多