前提・実現したいこと
Pythonを使用して、特定のフォルダーの中にある複数のcsvファイル(参考.1)に対して同一な処理(参考.2)を加えた後にひとつのcsvファイルにしたいと思っています。
参考.1
参考.2
横4列,縦100列のデータセットがあります。
列["X"]と["Y"]の最小値から10行刻みで、列["X coordinate"]と["Y coordinate"]を追加した後に数字を割り振っていきたいと思っています。
(例:データ1番目(行)から10番目(行)までは "1",1120までは"2" 2030までは3....)
(下記の「完成させたいデータセット」のようなイメージです)
Python3
1df1 = pd.read_csv(csv_files, encoding="shift-jis") 2df1['X coordinate'] = int() 3df1['Y coordinate'] = int() 4df1['X coordinate'] = (((df1['X'].rank(method='first') + 9) // 10)).astype(int) 5df1['Y coordinate'] = (((df1['Y'].rank(method='first') + 9) // 10)).astype(int)
#[ラベル追加前のラベル]<参考.2>
|Label|X|Y|Sumple|Bean Number|X coordinate|Y coordinate|
|:--|:--: |--:|
#[(ラベル追加後)処理前のデータセット]
|Label|X|Y|Sumple|Bean Number|X coordinate|Y coordinate|
|:--|:--: |--:|
|img061c.jpg|886|3400|くるみ豆|B2|0|0|
|img061c.jpg|899|1730|くるみ豆|B2|0|0|
|img061c.jpg|912|2760|くるみ豆|B2|0|0|
|img061c.jpg|917|4070|くるみ豆|B2|0|0|
|img061c.jpg|920|4750|くるみ豆|B2|0|0|
|img061c.jpg|932|4440|くるみ豆|B2|0|0|
|img061c.jpg|939|2100|くるみ豆|B2|0|0|
|img061c.jpg|943|3690|くるみ豆|B2|0|0|
|img061c.jpg|947|3070|くるみ豆|B2|0|0|
|img061c.jpg|956|2410|くるみ豆|B2|0|0|
|...||||||
|img061c.jpg|3870|4810|くるみ豆|B2|0|0|
|img061c.jpg|3870|3430|くるみ豆|B2|0|0|
|img061c.jpg|3880|4090|くるみ豆|B2|0|0|
|img061c.jpg|3880|3120|くるみ豆|B2|0|0|
|img061c.jpg|3890|4450|くるみ豆|B2|0|0|
|img061c.jpg|3900|2460|くるみ豆|B2|0|0|
|img061c.jpg|3900|2760|くるみ豆|B2|0|0|
|img061c.jpg|3900|2120|くるみ豆|B2|0|0|
|img061c.jpg|3910|3810|くるみ豆|B2|0|0|
|img061c.jpg|3910|1770|くるみ豆|B2|0|0|
|100 rows ×|6columns|
#[処理後のデータセット]<参考.2>
|Label|X|Y|Sumple|Bean Number|X coordinate|Y coordinate|
|:--|:--: |--:|
|img061c.jpg|886|3400|くるみ豆|B2|1|1|
|img061c.jpg|899|1730|くるみ豆|B2|1|1|
|img061c.jpg|912|2760|くるみ豆|B2|1|1|
|img061c.jpg|917|4070|くるみ豆|B2|1|1|
|img061c.jpg|920|4750|くるみ豆|B2|1|1|
|img061c.jpg|932|4440|くるみ豆|B2|1|1|
|img061c.jpg|939|2100|くるみ豆|B2|1|1|
|img061c.jpg|943|3690|くるみ豆|B2|1|1|
|img061c.jpg|947|3070|くるみ豆|B2|1|1|
|img061c.jpg|956|2410|くるみ豆|B2|1|1|
|...||||||
|img061c.jpg|3870|4810|くるみ豆|B2|10|10|
|img061c.jpg|3870|3430|くるみ豆|B2|10|10|
|img061c.jpg|3880|4090|くるみ豆|B2|10|10|
|img061c.jpg|3880|3120|くるみ豆|B2|10|10|
|img061c.jpg|3890|4450|くるみ豆|B2|10|10|
|img061c.jpg|3900|2460|くるみ豆|B2|10|10|
|img061c.jpg|3900|2760|くるみ豆|B2|10|10|
|img061c.jpg|3900|2120|くるみ豆|B2|10|10|
|img061c.jpg|3910|3810|くるみ豆|B2|10|10|
|img061c.jpg|3910|1770|くるみ豆|B2|10|10|
|100 rows ×|6columns|
発生している問題・エラーメッセージ
該当のソースコード2019/04/22 16:00訂正
Python3
1import os 2import pandas as pd 3import numpy as np 4import glob 5os.chdir("C://Users//For Programming//Documents//Python Scripts2") 6list = [] 7filelist = os.listdir() 8for file in filelist: 9 df = pd.read_csv(file,encoding="shift-jis") 10 for g in df: 11 df['X coordinate'] = int() 12 df['Y coordinate'] = int() 13 df['X coordinate'] = (((df['X'].rank(method='first') + 9) //10)).astype(int) 14 df['Y coordinate'] = (((df['Y'].rank(method='first') + 9) //10)).astype(int) 15 df2 = list.append(pd.read_csv(g,encoding="shift-jis")) #ここから上手くlist.apendを使えない。 16 for h in df2: 17 df3 = pd.concat(list) 18df3.to_csv("TOTAL.csv", encoding='shift_jis')
試したこと、実装する上で障害になっている事。2019/04/22 18:00訂正
(恐らくですが)フォルダー内にあるファイルを全て読み込み、特定の操作をかける所までは
上手くいってると思うのですが、特定の操作をかけた後に結果のDataFrame、リストに入れる?部分が上手くいってないです。(「for g in df:」の最終行の部分)
補足情報(FW/ツールのバージョンなど)
Anaconda
Python
Jupyter notebook
Pycharm
お忙しいとは思いますが、よろしくお願いいたします。
情報に不足がありましたら、ご指摘お願いいたします。
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/20 12:48