【问题标题】:Add specific row data for a specific column value为特定列值添加特定行数据
【发布时间】:2020-09-25 21:42:33
【问题描述】:

大家好, 我是 python 新手。 当我在 comm_rate 列中找到特定值时,我想添加 utility_namezip 以打印出来,如下例所示。任何帮助将不胜感激。

这是 CSV file 的链接:

最高比率是: Napakiak Ircinraq Power Co (99634, AK) - $0.839779005525

这是我的代码和附上的 CSV 图片:

import csv

def pronmpt_filename():
    filename = input("Please enter the data file: ")
    return filename

def comm_rate():
    commR_list = []
    with open(pronmpt_filename(), "r") as my_csv:
        reader = csv.DictReader(my_csv, delimiter=",")
        for row in reader:
            commR = row["comm_rate"]
            if commR != None and commR != "":
                commR_list.append(float(row["comm_rate"]))

    avg_commR = sum(commR_list) / len(commR_list)
    print("")
    print("The average commercial rate is: ", avg_commR)
    print("")
    print("The highest rate is: \n", max(commR_list))
    print("")
    print("The lowest rate is: \n", min(commR_list))

【问题讨论】:

  • 请发布 csv 文本(不是图片),以便我们进行测试。谢谢。
  • 抱歉,我添加了 CSV 文件链接。谢谢 Mike67

标签: python csv


【解决方案1】:

您可以使用 python zip 函数来完成。这里我给你看例子(我将使用pandas读取csv文件,你可以根据你的要求选择。但我会推荐pandas来解决这类问题):

import pandas as pd
read_file = pd.read_csv("filename.csv")
zipped_result = [ (f, i) for f, i in zip(read_file["comm_rate"], read_file["utility_name"])]

for i,j in zipped_result:
    print(f"The highest rate is:  {j} -  {i}.")

【讨论】:

  • 谢谢 E M Tonoy。这很好用!但我必须通过 Linux 服务器发送它并使用一个模型验证我的文件,它不承认 pandas 模块。没有熊猫有没有办法做到这一点?如果是的话,可以举个例子。 :)
  • 正如我所说,您可以根据需要使用任何其他模块。使用 pandas 不是强制性的。对于 Linux 服务器,我可以推荐csv 模块。我举一个你想要的例子import csv ifile = open('filename.csv', "rb") reader = csv.reader(ifile)希望它会起作用。
猜你喜欢
  • 2020-03-28
  • 1970-01-01
  • 2021-05-13
  • 1970-01-01
  • 2021-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-16
相关资源
最近更新 更多