【问题标题】:How to select rows in a csv file based on a list如何根据列表选择csv文件中的行
【发布时间】:2018-08-02 15:05:19
【问题描述】:

我遇到了一个问题。我有一个列表,称为列表A,并且我有一个包含许多列的数据框。第一列有很多时间点。我想从列表A 中选择那些具有相同值的行。我试图将第一列设置为索引。但不知何故,它不起作用。

关于我做错了什么有什么想法吗?

A=[8.1, 11.7, 13.475, 14.855, 15.125, 17.465, 19.82, 24.55]

第一列是"Time"。这是

[24.5,24.505,24.51,24.515,24.52,24.525,24.53,24.535,24.54,24.545,24.55,
24.555,24.56,24.565,24.57,24.575,24.58]

【问题讨论】:

  • 这是一个巨大的列表!
  • 大部分我都删了,哈哈
  • 列表 A 中的那些数字来自大列表。现在我想根据这些数字选择那些行。
  • 大列表只是列值的列表吗?
  • 是的。它们来自第一列。

标签: python list select indexing rows


【解决方案1】:

如果你想要这个值,

for item in longList:
    if item in A:
        #The list item is found somewhere within the list A

或者,如果您想要索引和/或值,

for i in range(len(longList)):
    if longList[i] in A:
        #Index of item is i, value is longList[i]

【讨论】:

  • 谢谢。我还想根据我们从列表 A 中获得的值来选择行
  • OP 有一个 pandas Dataframe。即使 OP 没有那种数据结构,您的算法也是低效的。最好是set_A = set(A); found = [item for item in longlist if item in set_A]。查找集合比线性查找列表更有效。但这既不是这里也不是那里,因为pandas 最终会得到一个非常不同的解决方案。
  • @StevenRumbalski 我过滤掉了pandas 的问题,这似乎漏掉了。此外,我没有阅读整个项目列表(太大)并假设可能存在重复值。
  • 它们是时间点,因此没有重复值。我删除了一些数据。谢谢
猜你喜欢
  • 2021-05-11
  • 1970-01-01
  • 1970-01-01
  • 2020-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-23
  • 1970-01-01
相关资源
最近更新 更多