python : csvの読み取り_pandas

PythonのPandasを使った、下記3つについてです。

 

1.csvの読み取り

2.csvの行数を数える

3.csvの合計を数える

 

CSVファイルを作る目的が、私の場合一時的に保存して、

別の関数で使うときに再度開いて色々やるということが多いです。

dataも保存できて一石二鳥とか思っています

(まぁソフト化する際には変更する必要がある部分も出るでしょうが・・・)

 

プログラムの書き方です。

いつも通りでpandasをimportします。 先人にならい、psという名前にします。

import pandas as pd

 

1.csvを読み取ります(前回作ったものをちょっと変えたもの)

今回使うcsvの内容はこれです。Noを1~10までを二回に分けているのは

一応意味があります。

f:id:Kangkang1981:20200315143836j:plain

f_csv_pd = pd.read_csv('csv_file.csv')

これでf_csv_pdは読み込んだcsvのデータフレームとなります。

 

2.行数を数える。

簡単でlenというので行数を数えることができるので、下記のように記載します。

len(f_csv_pd)

下記が上から、csvファイルそのままを

Noの列のみを、

Totalの列のみを読み込む場合です。


print('len : '+str(len(f_csv_pd)))
print('len_no : '+str(len(f_csv_pd['No'])))
print('len_total : '+str(len(f_csv_pd['Total'])))

結果は

f:id:Kangkang1981:20200315144531j:plain

全部同じです、数を数えるだけですからね。

 

3.合計を数える

これはsumで囲むのですが、

sum(f_csv_pd['No'])

このように、列を決めて実施します。

列等を指定しないと、エラーで動かないのでご注意を!?

No,Totalの列の合計を見るには

 

print('sun_no : '+ str(sum(f_csv_pd['No'])))
print('sum_total : '+str(sum(f_csv_pd['Total'])))

結果は下記。

f:id:Kangkang1981:20200315181146p:plain

この一連のプログラムは下記です。

import pandas as pd

#CSVファイルの作成
f_csv = open('csv_file.csv','w',encoding='utf-8')

#ファイルへの書き込み
f_csv.write('No'+',')
f_csv.write('Total'+'\n')

#書き込むための変数0(延べ数)
j = 0
i_0 = 0
#せっかくなので,for文で繰り返し書き込む
for i in range(1,21):
#延べの計算
 j = j + i

if i > 10:
  #i_0を足していく
  i_0 = i_0 + 1
  #回数i_0を書き込む
  f_csv.write(str(i_0)+',')
  #延べ数を書き込む
  f_csv.write(str(j)+'\n')

else:
  #回数iを書き込む
  f_csv.write(str(i)+',')
  #延べ数を書き込む
  f_csv.write(str(j)+'\n')

#開いたcsvファイルを閉じる
f_csv.close()

f_csv_pd = pd.read_csv('csv_file.csv')

print('len : '+str(len(f_csv_pd)))
print('len_no : '+str(len(f_csv_pd['No'])))
print('len_total : '+str(len(f_csv_pd['Total'])))

print('sun_no : '+ str(sum(f_csv_pd['No'])))
print('sum_total : '+str(sum(f_csv_pd['Total']))) 

 

今までにpythonについて書いた記事はここにリンクを貼ってあります。

興味があればぜひご覧ください。