python如何从一个csv文件中打印多行和一个公共单词?

2024-07-03 08:20:03 发布

您现在位置:Python中文网/ 问答频道 /正文

 whichgender=input("Would you like to view male or female students? ")
 if whichgender == "Male":
    with open('classinfo.csv' , 'r') as classinfoReport:
        classinfoReaders = csv.reader(classinfoReport)
        for row in classinfoReaders:
            for field in row:
               if field == whichgender:
                  print (row)

我正在尝试打印csv文件中包含单词“Male”的每一行。这段代码可以工作,但它只打印它找到的第一行中的单词Male。我的文件中有13行带有“Male”,我想打印它们好吧。怎么办我要这么做吗??你知道吗


Tags: 文件csvinyoufieldforinputif
3条回答

或者您可以将代码中的以下内容更改为

whichgender=input("Would you like to view male or female students? ")
 if whichgender == "Male":
    with open('classinfo.csv' , 'r') as classinfoReport:
        classinfoReaders = csv.reader(classinfoReport)
        for row in classinfoReaders:
            if 'Male' in row:
                print(row)


我的建议是使用pandas

这就是你想要的需要:-你知道吗

 whichgender=input("Would you like to view male or female students? ")
 if whichgender == "Male":
    with open('classinfo.csv' , 'r') as classinfoReport:
        classinfoReaders = csv.reader(classinfoReport)
        for row in classinfoReaders:
            for field in row:
               if whichgender in field:
                  print (row)

我建议你用pandas来简化这个问题。你知道吗

import pandas as pd
df = pd.DataFrame(pd.read_csv('classinfo.csv', header=None))
print(df[df[<index of the gender string here>] == 'Male'])

我编写了一个伪CSV文件,其文件名与您的classinfo.csv相同:

Adam,Male,25
Milo,Male,34
Mikka,Female,20
Samantha,Female,19
John,Male,21

因为性别指数是1

import pandas as pd
df = pd.DataFrame(pd.read_csv('classinfo.csv', header=None))
print(df[df[1] == 'Male'])

运行时的结果:

      0     1   2
0  Adam  Male  25
1  Milo  Male  34
4  John  Male  21

相关问题 更多 >