在数据框中使用数组作为列值进行选择

时间:2019-07-16 14:32:35

标签: python pandas data-science

我有一个充满Twitter数据的数据框。列为:

  • row_id:整数
  • 内容:字符串
  • 提及:[String]
  • value:整数

因此,对于每个推文,我在数据帧中都有行ID,推文的内容,其中使用的提及(例如:“ @ foo”)作为字符串数组以及我根据推文的内容。

一行示例为:

  • row_id:12
  • 内容:“权力的游戏太糟糕了”
  • 提及:['@hbo','@ tv','@ dissapointment','@ whatever']
  • 值:-0.71

所以我需要做的是以下三种方法:

  • 在提及字段中查找所有包含提及“ @foo”的行
  • 在提及字段中查找仅包含提及“ @foo”的所有行
  • 两个以上,但检查字符串数组而不是仅检查一个句柄

如果有人可以帮助解决这个问题,或者只是将我指向正确的方向,那就太好了。

1 个答案:

答案 0 :(得分:1)

让我们致电您的DataFrame df。

对于第一个任务,您使用:

result = df[(Dataframe(df['mentions'].tolist()) == '@foo').any(1)]

在这里,Dataframe(df['mentions'])创建了一个新的DataFrame,其中每一列都是一个提及,每一行都是一条推文。

然后== '@foo'生成一个包含True的布尔数据框,其中提到的是'@foo'。

最后.any(1)返回一个布尔索引,如果该行中的任何元素为True,则该元素为True。

我认为,借助这种帮助,您可以自己解决其余的问题。