【问题标题】:reading in certain rows from a csv file using python使用python从csv文件中读取某些行
【发布时间】:2016-04-08 20:26:38
【问题描述】:

假设我有一个如下所示的 csv 文件,第一列包含频率,第二列包含功率电平 (dBm)。

Frequency | dBm

1           -11.43
2.3         -51.32
2.5         -12.11
2.8         -11.21
3.1         -73.22
3.2         -21.13

我只想读入此文件中 (dBm) 值介于 -13 和 -10 之间的数据集。因此,在本例中,我只希望将数据集 (1, -11.43)(2.5, -12.11)(2.8, -11.21) 读入我的程序变量 x1 和 y1。有人可以帮助我如何做到这一点吗?

【问题讨论】:

    标签: python-2.7 csv canopy


    【解决方案1】:

    您可以只使用 csv 库并检查每个库是否符合您的条件。

    这样的东西应该适用于您的文件:

    with open('file.csv') as csvfile:
            reader = csv.reader(csvfile,delimiter=' ')
            reader.next()
            reader.next()
            for row in reader:
                    a = [float(i) for i in row if i!='']
            if a[1]>=-13 and a[1]<=-1:
                print (a[0],a[1])
    

    编辑:如果您正在处理表格数据,我建议您试试Pandas,它在这些情况下真的很有帮助。

    【讨论】:

    • 谢谢!但是,我希望有一个例子来说明我如何实现这一目标。
    • 制作了一个适用于您的示例文件的示例,您可能需要针对您的真实数据对其进行调整
    • 你知道csv工具箱的库名叫什么吗?我在 Canopy 的包管理器中搜索 csv,但找不到任何东西
    • 它是 python 的一部分,如果你安装了 python,你可以直接导入它:"import csv"
    • Joao 你知道这个错误在说什么吗?它指向包含 a = [float(i) for i in row if i!=''] Error is invalid literal for float(): 2.00E+09,1.10E+01 的行
    猜你喜欢
    • 2019-10-09
    • 2020-08-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多