roberthsu2003 / __2024_09_04_tvdi__

11309職能發展學院 python應用實戰 2024_09_04
Apache License 2.0
17 stars 0 forks source link

解析student.csv #3

Open roberthsu2003 opened 2 weeks ago

roberthsu2003 commented 2 weeks ago

來源:student.csv

name,age,city
John,23,New York
Jane,29,Los Angeles
Doe,25,Chicago
Anna,22,Houston
{'name': 'John', 'age': '23', 'city': 'New York'}
{'name': 'Jane', 'age': '29', 'city': 'Los Angeles'}
{'name': 'Doe', 'age': '25', 'city': 'Chicago'}
{'name': 'Anna', 'age': '22', 'city': 'Houston'}
{'name': 'Jane', 'age': '29', 'city': 'Los Angeles'}
raykuo7 commented 2 weeks ago

郭子睿的 Lesson 2 HW


修正

code

import csv

with open ('lesson2_1008\hw1\student.csv' , encoding='utf-8' , newline='') as file:
    reader = csv.reader(file)
    rdict = list(csv.DictReader(file))
    for i in rdict:
        print(i)
    l1 = []
    print('Age over 25')
    for i in rdict:
        if int(i['age']) > 25:
            print(i)
            l1.append(i)

with open('lesson2_1008\hw1\AgeOver25.csv','w',encoding='utf-8' , newline='') as file2:
    filenames = ['name' , 'age' , 'city']
    dict_writer = csv.DictWriter(file2,fieldnames=filenames)
    dict_writer.writeheader()
    for i in l1:
        dict_writer.writerow(i)

output

{'name': 'John', 'age': '23', 'city': 'New York'}
{'name': 'Jane', 'age': '29', 'city': 'Los Angeles'}
{'name': 'Doe', 'age': '25', 'city': 'Chicago'}
{'name': 'Anna', 'age': '22', 'city': 'Houston'}
Age over 25
{'name': 'Jane', 'age': '29', 'city': 'Los Angeles'}

輸出 AgeOver25.csv 檔內容

name,age,city
Jane,29,Los Angeles

原本

code

import csv

with open( 'student.csv', encoding='utf-8') as file1:

    reader = csv.reader(file1)
    l1 = []
    for i in reader:
        l1.append(i)
    l2 = []
    for i in range(1,len(l1)):
        if int(l1[i][1]) > 25:
            l2.append(l1[i])
        print('{' , end='')
        for j in range(len(l1[0])):
            print(l1[0][j]+':',end=' ')
            print(l1[i][j] , end='')
            if j <2:
                print(',',end=' ')
        print('}')

with open('ageover25.csv', 'w',encoding='utf-8') as file:
    for i in l2:
        for j in i:
            file.write(j)
            file.write(',')
        file.write('\n')    

output

{name: John, age: 23, city: New York}
{name: Jane, age: 29, city: Los Angeles}
{name: Doe, age: 25, city: Chicago}
{name: Anna, age: 22, city: Houston}

輸出 AgeOver25.csv 檔內容

Jane,29,Los Angeles,
storysky0610 commented 2 weeks ago

廖庭鋒的lesson2 homework

code

import csv
with open('student.csv',encoding="utf-8") as file:
    csvReader = csv.DictReader(file)
    readlist =[]
    readlist2 =[]
    for row in csvReader:
        readlist.append(dict(row))
    for i in readlist:
        print(i)
print()
for i in readlist:
    if int(i['age'])>25:
        readlist2.append(i)
print(readlist2)
with open('filtered_data.csv',"w",encoding="utf-8") as file:
    www = csv.writer(file)
    www.writerow(readlist2)

解答:

import csv
with open('student.csv',encoding="utf-8",newline='') as file:
    reader_dict = list(csv.DictReader(file))
    print(reader_dict)
    for item in reader_dict:
            print(item)
    new_list = []
    for item in reader_dict:
        if int(item['age']) > 25:
            print(item)
            new_list.append(item)

with open('filtered.csv',mode='w',encoding='utf-8',newline='') as f: filename = ['name','age','city'] dict_wter = csv.DictWriter(f,fieldnames=filename) dict_wter.writeheader()#寫入抬頭 for item in new_list: dict_wter.writerow(item)#寫入內容

tomisagoodguy commented 2 weeks ago

陳定康的hw2

code

import csv

students = []

with open('student.csv', encoding='utf-8-sig') as file:
    csv_reader = csv.reader(file)
    #讀取行標題
    headers = next(csv_reader)
    #逐行讀取數據
    for row in csv_reader:
    # print(row)
        # student.append(row)
        # 使用zip函數將headers和row配對,轉換成字典
        student_dict = dict(zip(headers,row))
        students.append(student_dict)

for student in students:
     print(student)       
up_25 = [student for student in students if int(student['age'])>25]
print("年齡大於25歲的人:")

for student in up_25:
    print(student)
print(f"\n共有{len(up_25)}人年齡大於25歲")
with open('up_25.csv',mode='w',encoding='utf-8-sig') as file:
    writer = csv.DictWriter(file,fieldnames=['name','age','city'])
    writer.writeheader()
    for student in up_25:
        writer.writerow(student)
Austin-Chang-zz commented 2 weeks ago

17 張鐵英的 Lesson 2 作業

17 張鐵英的 Lesson 2 作業內容 ## 來源: student.csv name,age,city John,23,New York Jane,29,Los Angeles Doe,25,Chicago Anna,22,Houston ## Q1: 使用 Python 內建的 csv 模組讀取文件 ## 請輸出 {'name': 'John', 'age': '23', 'city': 'New York'} {'name': 'Jane', 'age': '29', 'city': 'Los Angeles'} {'name': 'Doe', 'age': '25', 'city': 'Chicago'} {'name': 'Anna', 'age': '22', 'city': 'Houston'} ## Q1: ----- Code -----

import csv
# Specify the path to your CSV file
file_path = 'student.csv'   
with open(file_path, mode='r', encoding='utf-8') as file:
    # csvReader = csv.reader(file)
    csvReader = csv.DictReader(file)  
    # Iterate through rows and print each one
    for row in csvReader:   
        print(row)

## Q1: Output {'name': 'John', 'age': '23', 'city': 'New York'} {'name': 'Jane', 'age': '29', 'city': 'Los Angeles'} {'name': 'Doe', 'age': '25', 'city': 'Chicago'} {'name': 'Anna', 'age': '22', 'city': 'Houston'} ## Q2: 篩選內容:年齡大於25的人 ## Q2 ----- Code 1 -----

# Specify the path to your CSV file
file_path = 'student.csv'
with open(file_path, mode='r', encoding='utf-8') as file:
    csvReader = csv.DictReader(file)
    for row in csvReader:
        if int(row['age']) > 25:
            print(f"{row['name']},{row['age']},{row['city']}")

## Q2: code 1 output Jane,29,Los Angeles ## Q2 ----- Code 2 -----

# Sample data
Student_Dict = [
    {'name': 'John', 'age': '23', 'city': 'New York'},
    {'name': 'Jane', 'age': '29', 'city': 'Los Angeles'},
    {'name': 'Doe', 'age': '25', 'city': 'Chicago'},
    {'name': 'Anna', 'age': '22', 'city': 'Houston'}
]

# Iterate through the list and print entries with age greater than 25
for person in Student_Dict:
    if int(person['age']) > 25:
        print(person)

## Q2: Code2 Output {'name': 'Jane', 'age': '29', 'city': 'Los Angeles'} ## Q3: 輸出篩選後的結果儲存至新 CSV 文件(filtered_data.csv) ## Q3 ----- Code -----

import csv

# Data to be exported
data = {'name': 'Jane', 'age': '29', 'city': 'Los Angeles'}

# Specify the CSV file name
file_name = 'filtered_data.csv'

# Open the file in write mode and create a CSV writer
with open(file_name, 'w', newline='') as csvfile:

    # return a view of the keys, which are 'name', 'age', and 'city'.
    writer = csv.DictWriter(csvfile, fieldnames=data.keys())

    # Write the header
    writer.writeheader()

    # Write the data
    writer.writerow(data)

print(f"Data exported to {file_name}")

## Q3: Output message Data exported to filtered_data.csv ## Q3: Output ### The content of filtered_data.csv name,age,city Jane,29,Los Angeles
Clown-coder commented 2 weeks ago

01楊政剛 Lesson2 作業

gagatim commented 2 weeks ago

import csv

讀取CSV文件

with open('student.csv', 'r') as file: csv_reader = csv.DictReader(file) data = list(csv_reader)

輸出所有數據

for row in data: print(row)

篩選年齡大於25的人

filtered_data = [row for row in data if int(row['age']) > 25]

輸出篩選後的結果

print("\n篩選後的結果:") for row in filtered_data: print(row)

將篩選後的結果儲存到新的CSV文件

with open('filtered_data.csv', 'w', newline='') as file: fieldnames = ['name', 'age', 'city'] csv_writer = csv.DictWriter(file, fieldnames=fieldnames)

csv_writer.writeheader()
csv_writer.writerows(filtered_data)

print("\n篩選後的數據已儲存到 filtered_data.csv")

https://claude.ai/chat/0c71e170-b7de-4b3b-adfe-6f8626665b06

8jp6 commented 2 weeks ago

09文世宏L2作業

讀取檔案、得到資料

import csv
with open("student.csv",encoding="utf-8", newline = "") as file:
    rsts = list(csv.DictReader(file))
    # print(type(rsts))
    for i in rsts:
        print(i)

    rstl = []
    for i in rsts:
        if int(i["age"]) > 25:
            rstl.append(i)

輸出:
{'name': 'John', 'age': '23', 'city': 'New York'}
{'name': 'Jane', 'age': '29', 'city': 'Los Angeles'}
{'name': 'Doe', 'age': '25', 'city': 'Chicago'}
{'name': 'Anna', 'age': '22', 'city': 'Houston'}

篩選跟寫入

print(rstl)
with open('filtered_data.csv',mode='w',encoding='utf-8',newline='') as f:
    fieldnames = ['name', 'age','city']
    dict_writer = csv.DictWriter(f,fieldnames=fieldnames)
    dict_writer.writeheader()
    for item in rstl:
        dict_writer.writerow(item)

得到:
[{'name': 'Jane', 'age': '29', 'city': 'Los Angeles'}]

filtered_data.csv

name , Jane ,age , 29 ,city , Los Angeles ,

.ipynb .csv

saltyfish1107 commented 2 weeks ago

邱育霖的Lesson 2 homework

import csv
f=[]
with open('student.csv',encoding='utf-8') as file:
    csvReader=csv.DictReader(file)
    for row in csvReader:
        print(row)
        if int(row['age'])>25:
            f.append(row)
print('\n篩選結果')
for student in f:
    print(student)

輸出結果

{'name': 'John', 'age': '23', 'city': 'New York'} {'name': 'Jane', 'age': '29', 'city': 'Los Angeles'} {'name': 'Doe', 'age': '25', 'city': 'Chicago'} {'name': 'Anna', 'age': '22', 'city': 'Houston'}

篩選結果 {'name': 'Jane', 'age': '29', 'city': 'Los Angeles'}

richard20241007 commented 2 weeks ago

李啟民的Lesson 2 homework

with open('student.csv',encoding='utf-8') as file: csvReader = csv.DictReader(file)
for row in csvReader: list1.append(dict(row)) for i in list1: print(i)

- **篩選內容:年齡大於25的人**

for i in list1: if int(i['age']) > 25: list2.append(i) print(list2)

- **輸出篩選後的結果儲存至新 CSV 文件(filtered_data.csv)**

with open('filtered_data.csv', mode='w', encoding='utf-8', newline=' ') as f: fieldnames = ['name', 'age', 'city'] dict_writer = csv.DictWriter(f, fieldnames=fieldnames) dict_writer.writeheader() for item in list2: dict_writer.writerow(item)

Sun-Yung commented 2 weeks ago

孫榕陽的lesson2作業

nickjiang2000 commented 2 weeks ago

江榮展的 Lesson 2 Homework

joy273609 commented 2 weeks ago

周禹彤的lesson2作業

orange811024 commented 2 weeks ago

林采橘的lesson2作業

DeJungTseng commented 2 weeks ago

曾德容的Lesson2 作業

自訂學生資訊

將csv內容轉為字典

import csv
with open('student.csv',encoding='UTF-8') as file:
    stu_data=csv.reader(file)
    key=next(stu_data)#用next function將stu_data中的第一列內容讀取並做成新列,字典格式將以key[]列的索引值作為鍵
    # print(type(stu_data))
    dict_students=[]
    for row in stu_data:
        students={key[i]:value for i, value in enumerate(row)}#用enumerate函式在一個row裡面按照item index,將key的索引值和value的索引值依序排列。
        print(students)
        dict_students.append(students)#將student字典條目存入dict_student串列中以待提取

篩選出25歲以上學生資料

for students in dict_students:#由dict_students串列中的students元素去尋找
    age=int(students['age'])#age鍵中的value在字典中為str,轉為int之後指派給age變數
    stu_over25=[]
    if age > 25:
        print(students)
        stu_over25.append(students)#篩選出25歲以上的學生之後,存入stu_over25串列中

將25歲以上學生資料寫入新的csv檔案

with open('stu_over25.csv','w',newline='',encoding='UTF-8') as csvfile:#讀寫檔案都用open
    fieldnames=['Name','age','add','hobbit']#使用csv.DictWriter,先定義fieldnames作為首行
    writer=csv.DictWriter(csvfile,fieldnames=fieldnames)
    writer.writeheader()
    for students in stu_over25:
        writer.writerow(students) 

檔案如下

原始student.csv ipynb原始檔與output 25歲以上學生的csv檔

imkobebryant commented 2 weeks ago

呂安杰的lesson2作業

Andylai888 commented 2 weeks ago

賴豐文的lesson2作業

Kojiahleh commented 1 day ago

14葉日勤

使用Python內建的csv模組讀取文件並輸出

import csv

with open('student.csv',encoding='utf-8',newline='') as file:
  csv_reader=csv.DictReader(file)
  for row in csv_reader:
    print(row)

篩選年齡大於25的人

with open('student.csv',encoding='utf-8',newline='') as file:
  csv_reader=csv.DictReader(file)
  filtered_data = [row for row in csv_reader if int(row['age']) > 25]
  for row in filtered_data:
    print(row)

篩選後的結果儲存至CSV文件(filtered_data.csv)

with open('filtered_data.csv','w',encoding='utf-8',newline='') as file:
    fieldnames = ['name', 'age', 'city']
    csv_writer = csv.DictWriter(file, fieldnames=fieldnames)
    csv_writer.writeheader()
    csv_writer.writerows(filtered_data)