查看完整版本: python csv
頁: [1]

a183963 發表於 2016-7-18 03:04 PM

python csv

本帖最後由 snowflying 於 2016-7-19 11:09 AM 編輯

這裡有1個CSV檔(RAR解壓縮後) 題目是這張圖片
要用Python程式寫出 請各位大大提出一些見解!!
3Q~~
<div></div>

snowflying 發表於 2016-7-18 06:42 PM

本帖最後由 snowflying 於 2016-7-18 06:43 PM 編輯

這題目是作業嗎?
作業直接求答案,會直接刪帖喔
因為作業多半都是課程範圍內的練習
不自己練習就沒有效果

如果不是作業的話,還是會刪除
因為你完全沒有自己寫的程式碼,這不算是討論
討論是看哪個環節遇到問題,不是憑空求得程式碼
若真的只是想要參考
google 搜尋 python csv,一定有範例

a183963 發表於 2016-7-18 11:54 PM

snowflying 發表於 2016-7-18 06:42 PM static/image/common/back.gif
這題目是作業嗎?
作業直接求答案,會直接刪帖喔
因為作業多半都是課程範圍內的練習


練習用
我上網當然找過有關讀取CSV檔的語法之類的
但就是不知從哪下手
如果違規就幫忙刪吧 感謝管理員!

snowflying 發表於 2016-7-19 12:10 AM

參考這一篇
import csv

f = open('test.csv', 'r')
arr = ['ID', 'Name', 'Gender', 'Date of birth', 'Job', 'Salary']

for row in csv.DictReader(f, arr):
    print(row)
這樣可以印出每一個 row
每次讀的時候是一個 dict
再依照題目要求改動就行了

a183963 發表於 2016-7-19 09:21 AM

a183963 發表於 2016-7-18 11:54 PM static/image/common/back.gif
練習用
我上網當然找過有關讀取CSV檔的語法之類的
但就是不知從哪下手


我是用python2的
有人說2的Library比較多<br><br><br><br><br><div></div>

a183963 發表於 2016-7-19 09:26 AM

snowflying 發表於 2016-7-19 12:10 AM static/image/common/back.gif
參考這一篇這樣可以印出每一個 row
每次讀的時候是一個 dict
再依照題目要求改動就行了 ...

用import好像比較簡短對吧??
因為有些import的不大了解
所以是想用fuction一步一步慢慢做的
好像用List或Dict都可以
我會參考這篇下手的 謝謝管理員!...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>

chevylin0802 發表於 2016-7-19 10:26 AM

a183963 發表於 2016-7-19 09:21 AM static/image/common/back.gif
我是用python2的
有人說2的Library比較多

不要把Library當成重要考量
Python 2與Python 3在理念上有許多差異
目前支援Python 2.7的開源程式與開源專案比較多許多
是基於歷史因素
畢竟Python 2是比較有歷史的版本
當你需要使用多國語言的時候
Python 3可以直接支持Unicode編碼的優勢就出現了
到那個時候你還要執意使用Python 2嗎?



...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>

snowflying 發表於 2016-7-19 10:34 AM

a183963 發表於 2016-7-19 09:26 AM static/image/common/back.gif
用import好像比較簡短對吧??
因為有些import的不大了解
所以是想用fuction一步一步慢慢做的


沒有 import 的話
預設只會有一些可以用而已

dict 是我檢查 row 的型態時
print(type(row)) 得到的
從輸出來看,也是 dict 這個 class 沒錯

之前有學過 python2 的語法嗎?
官網的資料可以看過去

https://docs.python.org/2/

Tutorial 可以先走一遍
接著參考一下 Language Reference,大致了解一下語法
然後 Library Reference 可以找一些實用的學一學
比方說 13.1. csv — CSV File Reading and Writing
就是這一帖可能會用到的,裡面有一些函式的說明
最後可以看一下 Python HOWTOs

其他還有不列在官網那邊的可以使用,就是自行摸索了
...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>

a183963 發表於 2016-7-19 03:48 PM

本帖最後由 a183963 於 2016-7-20 09:15 AM 編輯

snowflying 發表於 2016-7-19 10:34 AM static/image/common/back.gif
沒有 import 的話
預設只會有一些可以用而已


import我還是不會用
所以後來我還是用def一步一步慢慢做
有人能提供 import csv的寫法嗎??我想找個方向以下是第一題的程式
import re

def ex01(x):
    test=open(x).read()
    x=re.split('\||\n|\r',test)
    return x

def ls(x):
    lsb = []
    lss = []
    lsb = x
    for i in range(0,len(lsb)-5,6):
        tuplex=(lsb,lsb,lsb,lsb,lsb,lsb)
        lss = lss +
    return lss

def job(ls):
    newls=[]
    for i in range(len(ls)):
        if ls not in newls:
            newls.append(ls)
    return newls

def salary(ls,job):
    a=[]
    for x in range(len(job)):
        b=[]
        for y in range(len(ls)):
            if ls == job:
                b = b + )]
        a = a +
    return a

def counter(job,salary):
    for i in range(len(job)):
        alist="%s \t Max:%r \t aver:%r \t min:%r"%(job,max(salary),sum(salary)*1.0/len(salary),min(salary))
        print alist

if __name__=='__main__':
    a=ex01('test.csv')
    b=ls(a)
    c=job(b)
    d=salary(b,c)
    e=counter(c,d)




...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>

snowflying 發表於 2016-7-20 11:07 PM

a183963 發表於 2016-7-19 03:48 PM static/image/common/back.gif
import我還是不會用
所以後來我還是用def一步一步慢慢做
有人能提供 import csv的寫法嗎??我想找個方向以 ...

不懂你的意思
是說要用 csv 裡面的東西嗎?

還是不想 import,自己實作<br><br><br><br><br><div></div>

a183963 發表於 2016-7-21 10:47 AM

snowflying 發表於 2016-7-20 11:07 PM static/image/common/back.gif
不懂你的意思
是說要用 csv 裡面的東西嗎?



直接 import csv那個寫法好像是要用dict寫對吧?
dict的我不太熟所以想看個範例
我目前大多都用list寫

snowflying 發表於 2016-7-21 10:55 AM

a183963 發表於 2016-7-21 10:47 AM static/image/common/back.gif
直接 import csv那個寫法好像是要用dict寫對吧?
dict的我不太熟所以想看個範例
我目前大多都用list寫 ...

以四樓的例子來說
就是取 row['ID']、row['Name']、...、row['Salary']
也就是第四行裡面的那些

a183963 發表於 2016-7-21 01:34 PM

snowflying 發表於 2016-7-21 10:55 AM static/image/common/back.gif
以四樓的例子來說
就是取 row['ID']、row['Name']、...、row['Salary']
也就是第四行裡面的那些


這樣一個一個的就是dict嗎??

snowflying 發表於 2016-7-21 02:02 PM

a183963 發表於 2016-7-21 01:34 PM static/image/common/back.gif
這樣一個一個的就是dict嗎??

不是,取出來的 row 是每一筆資料,他的型態是 dict
印出來像這樣

{'Name': 'Cadence', 'ID': '200', 'Job': 'Operator', 'Salary': '30303', 'Gender': 'Female', 'Date of birth': '1999/9/9'}

就像字典一樣,找 'Name' 會對應到 'Cadence';找 'ID' 會對應到 '200'
要取出哪一項,就作為索引值放進 row[] 裡面
取出來的值是字串,要轉成數字自己轉就行了
...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>

a183963 發表於 2016-7-22 09:13 AM

snowflying 發表於 2016-7-21 02:02 PM static/image/common/back.gif
不是,取出來的 row 是每一筆資料,他的型態是 dict
印出來像這樣



好的 大致上理解了!!
謝謝大大!!<br><br><br><br><br><div></div>
頁: [1]