前提・実現したいこと
横6列,縦100列のデータセットがあります。
列["X"]の最小値から10行刻みで、列["X coordinate"]に数字を割り振っていきたい
と思っています。
(例:データ1番目(行)から10番目(行)までは "1",1120までは"2" 2030までは3....)
(下記の「完成させたいデータセット」のようなイメージです)
便宜的に列[X Cordinate]を追加しましたが、コードを書く上で邪魔でしたらdropなどで削除して貰っても大丈夫です。
該当のデータセット
|Label|X|Y|Sumple|Bean Number|X coordinate|
|:--|:--: |--:|
|img061c.jpg|886|3400|くるみ豆|B2|0|
|img061c.jpg|899|1730|くるみ豆|B2|0|
|img061c.jpg|912|2760|くるみ豆|B2|0|
|img061c.jpg|917|4070|くるみ豆|B2|0|
|img061c.jpg|920|4750|くるみ豆|B2|0|
|img061c.jpg|932|4440|くるみ豆|B2|0|
|img061c.jpg|939|2100|くるみ豆|B2|0|
|img061c.jpg|943|3690|くるみ豆|B2|0|
|img061c.jpg|947|3070|くるみ豆|B2|0|
|img061c.jpg|956|2410|くるみ豆|B2|0|
|...||||||
|img061c.jpg|3870|4810|くるみ豆|B2|0|
|img061c.jpg|3870|3430|くるみ豆|B2|0|
|img061c.jpg|3880|4090|くるみ豆|B2|0|
|img061c.jpg|3880|3120|くるみ豆|B2|0|
|img061c.jpg|3890|4450|くるみ豆|B2|0|
|img061c.jpg|3900|2460|くるみ豆|B2|0|
|img061c.jpg|3900|2760|くるみ豆|B2|0|
|img061c.jpg|3900|2120|くるみ豆|B2|0|
|img061c.jpg|3910|3810|くるみ豆|B2|0|
|img061c.jpg|3910|1770|くるみ豆|B2|0|
|100 rows ×|6columns|
完成させたいデータセット
|Label|X|Y|Sumple|Bean Number|X coordinate|
|:--|:--: |--:|
|img061c.jpg|886|3400|くるみ豆|B2|1|
|img061c.jpg|899|1730|くるみ豆|B2|1|
|img061c.jpg|912|2760|くるみ豆|B2|1|
|img061c.jpg|917|4070|くるみ豆|B2|1|
|img061c.jpg|920|4750|くるみ豆|B2|1|
|img061c.jpg|932|4440|くるみ豆|B2|1|
|img061c.jpg|939|2100|くるみ豆|B2|1|
|img061c.jpg|943|3690|くるみ豆|B2|1|
|img061c.jpg|947|3070|くるみ豆|B2|1|
|img061c.jpg|956|2410|くるみ豆|B2|1|
|...||||||
|img061c.jpg|3870|4810|くるみ豆|B2|10|
|img061c.jpg|3870|3430|くるみ豆|B2|10|
|img061c.jpg|3880|4090|くるみ豆|B2|10|
|img061c.jpg|3880|3120|くるみ豆|B2|10|
|img061c.jpg|3890|4450|くるみ豆|B2|10|
|img061c.jpg|3900|2460|くるみ豆|B2|10|
|img061c.jpg|3900|2760|くるみ豆|B2|10|
|img061c.jpg|3900|2120|くるみ豆|B2|10|
|img061c.jpg|3910|3810|くるみ豆|B2|10|
|img061c.jpg|3910|1770|くるみ豆|B2|10|
|100 rows ×|6columns|
該当のソースコード
Python3
1import os 2import pandas as pd 3import numpy as np 4 5os.chdir("C:\Users\For Programming\Documents\Python Scripts") 6df1 = pd.read_csv('img061cNew.csv', encoding="shift-jis") 7df1['X coordinate'] = int() 8B=(df1["X"].min().astype(float)) 9df1['X coordinate'] = int() 10df1.sort_values(by='X')
試したこと
最初期の実現の構想としては、Xの列(カラム)においてMax値とMin値を求め、
(Max-Min)/10で出てきた値を適当な変数"variable"などと置いて
if文を使い「もしXの値が0≦該当の値≦Xのmin値ならX coordinateに"1"、もし違う場合は
Xのmin値≦該当の値≦(Xのmin値)+variable ならX coordinateに"2"、
というようなプログラムを考えていました。(Xの値が10行を境に少しずつ増えるので...)
プログラムのコードが複雑になって、明らかに自分のキャパを超えてしまうので、現在質問させて頂いたようなコードの書き方を質問させて頂きました。
補足情報(FW/ツールのバージョンなど)
Anaconda
Python
Jupyter notebook
お忙しいとは思いますが、よろしくお願いいたします。
情報に不足がありましたら、ご指摘お願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。