iT邦幫忙

0

Python:資料行/列個數計算

Hi

想請問如何用Python計算csv某一/列的個數,由於檔案有很多,不想要一個個打開來看...
非常緊急,麻煩求解,謝謝各位!
(圖片如下,想要計算第一列總共個數為多少? Ps.A1不包含)
https://ithelp.ithome.com.tw/upload/images/20180204/201086420QfDl2G7SY.png

看更多先前的討論...收起先前的討論...
froce iT邦高手 2 級 ‧ 2018-02-05 01:07:59 檢舉
先生,你用什麼模組去讀csv?
不說的話怎麼幫你?
shinekung iT邦新手 5 級 ‧ 2018-02-05 11:05:51 檢舉
你好,我是用pandas去讀,謝謝。
froce iT邦高手 2 級 ‧ 2018-02-05 11:13:49 檢舉
那你可以用下面提供的第一段code去改,然後在read_csv()時下參數去略過第一行,另外pandas的教學很多,多去翻翻文件吧。

雖然我覺得pandas在python裡算是很難用的套件。
shinekung iT邦新手 5 級 ‧ 2018-02-05 11:20:25 檢舉
好的,謝謝你。
為什麼要討厭pandas QQ
froce iT邦高手 2 級 ‧ 2018-02-06 08:34:05 檢舉
因為他讀 DataFrame 會猜類型,而且有時候莫名其妙會得到不同的結果...Orz
最近寫一個 web,想說用pandas去讀excel,遇到第一次執行都會報錯,第二次就正常,後來才發現是欄位的型別錯誤。

1 個回答

0

import os
import pandas as pd
files=os.listdir("<your_dir_path>")
files=[f + "<your_dir_path>" for f in files if f.endswith("csv")]

#method1
for f in files:
df=pd.read_csv(f)
print(f, len(df))

#method2
for f in files:
with open(f, "r", encoding="utf8") as fr:
data=fr.read()
data=data.split("\n")
print(f, len(data.split(",")) # notice: if your data have comma the standard csv file will use "," to split data including this ". as a result this method may doesn't work or you should modify this yourself.

看更多先前的回應...收起先前的回應...

update
files=[f + "<your_dir_path>" for f in files if f.endswith("csv")]
=>
files=[os.path.join("<your_dir_path>", f) for f in files if f.endswith("csv")]

if you want to exclude A1 you can minus 1 your self

froce iT邦高手 2 級 ‧ 2018-02-05 10:24:52 檢舉

pandas在讀 csv 的時候可以利用 header 參數指定row1是標題。
或是用 skiprows 參數去略過第1列。

shinekung iT邦新手 5 級 ‧ 2018-02-05 11:18:11 檢舉

Hi GoatWang
這計算出來的個數是否為直向的那一行?若要計算橫向(第一列)的話,該如何操作呢?
謝謝。

froce iT邦高手 2 級 ‧ 2018-02-05 12:06:06 檢舉

DataFrame有shape的屬性,會得到 (rows, columns) 的元組。
在上面給你的範例中,你可以用

r_counter, c_counter = df.shape

來取出。

抱歉早上趕上班,在手機上打的,有些錯誤。
上面的回應是OK的。
也可以這樣

len(df.columns)
shinekung iT邦新手 5 級 ‧ 2018-04-28 15:10:34 檢舉

請問如果想要計算第一列(row)有幾個值且"不包含空值",要如何寫才好?

我要發表回答

立即登入回答