環境:windows10 PyCharm2021.1.3
あるフォルダ(input)にある以下のような複数のCSVファイルを読み込み
身長カラムの一定範囲の個数を取得し、
別のCSVファイルとして別フォルダ(output)へ出力したいのですがどのようにすればよろしいでしょうか?
<元データ>ファイル名:Aクラス
身体測定
3月1日
Aクラス
ID sex kg cm
1 男 34 134
2 男 46 121
3 男 54 110
4 男 23 126
5 女 75 164
6 女 34 131
7 女 44 121
8 女 55 151
<出力データ>ファイル名:Aクラス_身長
range cm
0 100-110 0
1 110-120 1
2 120-130 3
3 130-140 2
〇自分で調べたこと
・pandasのインポート
・フォルダ内のCSVのパス取得(出力時のファイル名変更に使用)→glob関数
・CSVファイルの読み込み→read.csv
・フォルダ内すべてのCSVで処理→for文
他にも条件指定による抽出、query関数やcount関数などで調べたのですが、
どのようにコードしたらよいかわからずご質問させていただきました。
何卒ご教授いただければ幸いです。
よろしくお願いいたします
◎追記
import pandas as pd
df = pd.read_csv("./A.csv",header=3)
rannge_110 = (df.query('100 <= cm < 110'))
rannge_120 = (df.query('110 <= cm < 120'))
rannge_130 = (df.query('120 <= cm < 130'))
rannge_140 = (df.query('130 <= cm < 140'))
◎追記2
import pandas as pd
import glob
file = glob.glob('input/*.csv')
df = pd.read_csv("input/A.csv", header=3)
rannge_110 = (df.query('100 <= cm < 110'))
rannge_120 = (df.query('110 <= cm < 120'))
rannge_130 = (df.query('120 <= cm < 130'))
rannge_140 = (df.query('130 <= cm < 140'))
count_110 = (len(rannge_110))
count_120 = (len(rannge_120))
count_130 = (len(rannge_130))
count_140 = (len(rannge_140))
lists = [count_110, count_120, count_130, count_140]
◎追記3(何とか一つのファイルの出力はできました)
import pandas as pd
import glob
file = glob.glob('input/*.csv')
df = pd.read_csv("input/A.csv", header=3)
rannge_110 = (df.query('100 <= cm < 110'))
rannge_120 = (df.query('110 <= cm < 120'))
rannge_130 = (df.query('120 <= cm < 130'))
rannge_140 = (df.query('130 <= cm < 140'))
count_110 = (len(rannge_110))
count_120 = (len(rannge_120))
count_130 = (len(rannge_130))
count_140 = (len(rannge_140))
cm = [count_110, count_120, count_130, count_140]
range = ["110","120","130","140"]
dict = {'range': range,'cm': cm}
df2 = pd.DataFrame(dict)
df2.to_csv('A_output.csv')
回答2件
あなたの回答
tips
プレビュー