2016-11-28 10 views
3

나는 팬더를 처음 사용합니다.팬더 데이터 프레임 열 시리즈의 모든 짝수 행에 문자열을 추가하는 방법은 무엇입니까?

팬더 데이터 프레임 df에 새 열을 추가하고 모든 홀수 행에 "시작"을 지정하고 모든 짝수 행에 "중지"를 지정하고 싶습니다.

그러나 내가 df.iloc[1::2, :] = "Start"을 수행 할 때 모든 열에 "시작"문자열이있는 모든 두 번째 위치에 새 행을 삽입합니다.

이 경우 팬더는 "시작"줄을 넣을 열을 알지 못합니다.

그러나 올바른 구문을 파악할 수 없습니다.

답변

4

여기 내 솔루션입니다 - 최적화 부분을 생각하지만, 이것은 매우 잘 처리해야 상당히 큰 데이터 집합을 부여하지 않았습니다 -

import pandas as pd 

df = pd.read_csv('temp.csv') 

df['New_Col'] = "Start" 

df.loc[1::2,"New_Col"] = "Stop" 

print df['New_Col'] 

출력 -

0  Start 
1  Stop 
2  Start 
3  Stop 
4  Start 
5  Stop 
6  Start 
7  Stop 
8  Start 
9  Stop 
10  Start 
11  Stop 
12  Start 
13  Stop 
14  Start 
15  Stop 
16  Start 
17  Stop 
18  Start 
19  Stop 
20  Start 
21  Stop 
22  Start 
23  Stop 
24  Start 
25  Stop 
26  Start 
27  Stop 
28  Start 
29  Stop 
     ... 
116 Start 
117  Stop 
118 Start 
119  Stop 
120 Start 
121  Stop 
122 Start 
123  Stop 
124 Start 
125  Stop 
126 Start 
127  Stop 
128 Start 
129  Stop 
130 Start 
131  Stop 
132 Start 
133  Stop 
134 Start 
135  Stop 
136 Start 
137  Stop 
138 Start 
139  Stop 
140 Start 
141  Stop 
142 Start 
143  Stop 
144 Start 
145  Stop 
Name: New_Col, dtype: object 
+1

덕분에 남자 - 해결했다. 이 기능은 8GB RAM 시스템의 6GB 텍스트 파일과 완벽하게 작동합니다. – sudonym

+0

"시작"및 "중지"이벤트를 어떻게 계산하고 모든 이벤트 수를 추가 열에 넣으시겠습니까? – sudonym

+0

그냥 그것을 별도의 시리즈로 가져 와서 처리하십시오 ... 원본 데이터 세트에 이것을 넣으면 비정규 화됩니다 -'print df.groupby ('Event') [ 'New_Col']. agg ([ 'count'])' –