私のデータフレームの列 'which_AOI'(0〜9の範囲)に関心のある領域を数えたいと思います。私は、1つの「画像」が終了し、次の画像が始まるときを教えてくれる変数 'マーカー'(0〜xの範囲)に応じて、データフレームに結果を追加して新しい列を作りたいと思います可変長の行)。これはこれまでの私のコードですが、出力が出ることなく立ち往生して走っているようです。私は最初から再構築しようとしましたが、 'if df.marker == num'になるとすぐに停止しません。私は何が欠けていますか? (以下の例のデータフレーム)パンダのループでデータフレームを検索してリストを更新する
## AOI count of spec. type function (in progress):
import numpy as np
import pandas as pd
path_i = "/Users/Desktop/Pilot/results/gazedata_filename.csv"
df = pd.read_csv(path_i, sep =",")
#create a new dataframe for AOIs:
d = {'marker': []}
df_aoi = pd.DataFrame(data=d)
### Creating an Aoi list
item = df.which_AOI
aoi = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] #list for search
aoi_array = [0, 0 , 0, 0, 0, 0, 0, 0, 0, 0] #list for filling
num = 0
for i in range (0, len (df.marker)): #loop through the dataframe
if df.marker == num: ## if marker = num its one picture
for index, item in enumerate(aoi): #look for item (being a number in which_AOI) in aoi list
if (item == aoi[index]):
aoi_array[index] += 1
print (aoi)
print (aoi_array)
se = pd.Series(aoi_array) # make list into a series to attach to dataframe
df_aoi['new_col'] = se.values #add list to dataframe
aoi_array.clear() #clears list before next picture
else:
num +=1
index pos_time pos_x pos_y pup_time pup_diameter marker which_AOI fixation Picname shock
1 16300 168.608779907227 -136.360855102539 16300 2.935715675354 0 7 18 5 save
2 16318 144.97673034668 -157.495513916016 16318 3.08838820457459 0 8 33 5 save
3 16351 152.92560577392598 -156.64172363281298 16351 3.0895299911499 0 7 17 5 save
4 16368 152.132453918457 -157.989685058594 16368 3.111008644104 0 7 18 5 save
5 16386 151.59835815429702 -157.55587768554702 16386 3.09514689445496 0 7 18 5 save
6 16404 150.88092803955098 -152.69479370117202 16404 3.10009074211121 1 7 37 5 save
7 16441 152.76554107666 -142.06188964843798 16441 3.0821495056152304 1 7 33 5 save
は、あなただけの他の列の値に基づいて列を追加しようとしています?通常、データフレームをループする必要はありません。また、.csvファイルのサンプルを添付できますか? – jjj
@jjj実際には、データフレームのサンプルを可能な限り添付しました(医学研究のデータ部分)。私はどの画像を見ているのかを(画像0または1または2)、画像ごとに別々にカウントしたい(たとえば '8'が1倍、 '7'が画像に4回発生するなど) 0と2×写真1)。これらの集計リストは、後で分析するために新しい結果データフレームに添付したいと考えていました。私はこれに非常に新しいので、これに簡単な方法があれば、私は多くの義務があります。 – ktk