내 데이터 프레임 열 'which_AOI'(0-9 범위)의 관심 영역을 계산하고 싶습니다. 나는 하나의 '그림'이 완료되고 다음이 시작될 때 알려주는 변수 '마커'(0 - x에 이르기까지)에 따라 데이터 프레임에 결과가 추가 된 새로운 컬럼을 원합니다 (하나의 마커는 가변 길이의 행). 이것은 지금까지 내 코드입니다. 그러나 출력이 없어지지 않고 계속 실행되는 것 같습니다. 나는 처음부터 재구성을 시도했지만 'if df.marker == num'이되면 즉시 멈추지 않습니다. 내가 뭘 놓치고 있니? (아래 예 dataframe)for pandas for loop for pandas
## 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'이 1x 발생, '7'이 그림에서 4 회 발생 함). 0 및 2 x 그림 1). 이 계산 목록은 나중의 분석을 위해 새로운 결과 데이터 프레임에 첨부하고 싶었습니다. 나는 이것에 아주 새롭다. 그래서 이것에 쉬운 방법이 나에 의하여 매우 강요 될 것입니다지면. – ktk