반응형
판다의 연속된 행에서 차이가 발생하는 열 추가
내게 이런 데이터 프레임이 있다고 치자.
A B
0 a b
1 c d
2 e f
3 g h
0,1,2,3은 시간이고 a,c,e,g는 하나의 시계열이고 b,d,f,h는 다른 시계열입니다.특정 열에 대해 연속된 행의 차이를 계산하여 얻은 원본 데이터 프레임에 두 개의 열을 추가할 수 있어야 합니다.
그래서 나는 이런게 필요합니다.
A B dA
0 a b (a-c)
1 c d (c-e)
2 e f (e-g)
3 g h Nan
데이터 프레임/시리즈에서 diff라는 것을 보았지만 첫 번째 요소가 Nan이 되는 것처럼 약간 다르게 처리합니다.
시프트를 사용합니다.
df['dA'] = df['A'] - df['A'].shift(-1)
당신은 사용할 수 있습니다.diff통과.-1처럼periods인수:
>>> df = pd.DataFrame({"A": [9, 4, 2, 1], "B": [12, 7, 5, 4]})
>>> df["dA"] = df["A"].diff(-1)
>>> df
A B dA
0 9 12 5
1 4 7 2
2 2 5 1
3 1 4 NaN
[4 rows x 3 columns]
CSV에서 데이터를 사용할 경우 다음과 같이 완벽하게 작동합니다.
my_data = pd.read_csv('sale_data.csv')
df = pd.DataFrame(my_data)
df['New_column'] = df['target_column'].diff(1)
print(df) #for the console but not necessary
롤링 차이는 다음과 같은 방법으로도 계산할 수 있습니다.
df=pd.DataFrame(my_data)
my_data = pd.read_csv('sales_data.csv')
i=0
j=1
while j < len(df['Target_column']):
j=df['Target_column'][i+1] - df['Target_column'][i] #the difference btwn two values in a column.
i+=1 #move to the next value in the column.
j+=1 #next value in the new column.
print(j)
언급URL : https://stackoverflow.com/questions/23142967/adding-a-column-thats-result-of-difference-in-consecutive-rows-in-pandas
반응형
'programing' 카테고리의 다른 글
| AngularJS: ng-repeat에서 동적으로 컨트롤러 할당 (0) | 2023.10.03 |
|---|---|
| 사용자 지정 게시물 유형 및 다중 사용자 지정 필드에 대한 SQL 쿼리 (0) | 2023.10.03 |
| 워드프레스 관리 페이지에서 사용자 정의 열 정렬 (0) | 2023.10.03 |
| mariadb : ODBCConf.exe로 ODBC 구성 (0) | 2023.10.03 |
| 에서 DbContext Connection String을 구현하려면 어떻게 해야 합니까?NET Core? (0) | 2023.10.03 |