【问题标题】:How to find a row and extract data from row in csv file (Python 3)如何在csv文件中查找一行并从行中提取数据(Python 3)
【发布时间】:2021-02-05 02:19:09
【问题描述】:

标题有点糟糕,所以让我举个例子。

name,gender,age
mark,male,20
christine,female,24
bob,male,14

使用上面的例子,我想找到 Bob 的年龄。我该怎么做?

【问题讨论】:

    标签: python python-3.x csv


    【解决方案1】:

    您可以使用 pandas 读取 csv,然后找到 bob 的年龄:

    import pandas as pd
    df = pd.read_csv("<file_path>")
    bobs_age = df[df['name'] == 'bob']['age']
    print(bobs_age)
    

    另一种方法是逐行读取csv:

    import csv
    with open("<file_path>", newline='') as csvfile:
        csv_reader = csv.reader(csvfile, delimiter=',', quotechar='|')
        for row in csv_reader:
            name, gender, age = row
            if name == 'bob':
                bobs_age = age
    print(bobs_age)
    

    【讨论】:

    • 对我来说它返回这个 2 14 Name: age, dtype: int64 我不知道为什么会这样。出于某种原因,它可以用于数学(如果我做 bobs_age += 4 它返回同样奇怪的东西,但 14 是 18),但是有没有办法只得到数字?我会将此标记为答案,因为它解决了我的问题,但如果你也能回答这个问题,我将不胜感激。
    • 只需将其添加到 bobs_age:bobs_age.values[0]
    猜你喜欢
    • 2022-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-11
    • 2021-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多