반응형
(row, col, values)의 튜플 목록에서 Pandas DataFrame을 생성합니다.
다음과 같은 튜플 목록이 있습니다.
data = [
('r1', 'c1', avg11, stdev11),
('r1', 'c2', avg12, stdev12),
('r2', 'c1', avg21, stdev21),
('r2', 'c2', avg22, stdev22)
]
첫 번째 열에 이름이 지정된 행과 두 번째 열에 이름이 지정된 열이있는 팬더 데이터 프레임에 싶습니다. 이름 행 pandas.DataFrame([x[1:] for x in data], index = [x[0] for x in data])
을 처리하는 방법은 비슷 하지만 2 × 2 행렬을 얻기 위해 열을 어떻게 처리 합니까 (이전 세트의 출력은 3 × 4)? 행 레이블을 명시 적으로 생략하는 대신 더 지능적인 방법이 처리?
편집 2 개의 DataFrame이 필요한 것입니다. 하나는 평균 용이고 다른 하나는 표준 용입니다. 맞습니까? 아니면 "셀"에 값 목록을 사용합니까?
다음을 생성 한 후 DataFrame을 피벗 할 수 있습니다.
>>> df = pd.DataFrame(data)
>>> df.pivot(index=0, columns=1, values=2)
# avg DataFrame
1 c1 c2
0
r1 avg11 avg12
r2 avg21 avg22
>>> df.pivot(index=0, columns=1, values=3)
# stdev DataFrame
1 c1 c2
0
r1 stdev11 stdev12
r2 stdev21 stdev22
데이터를 그대로 쌓아 두는 것이 좋습니다.
df = pandas.DataFrame(data, columns=['R_Number', 'C_Number', 'Avg', 'Std'])
# Possibly also this if these can always be the indexes:
# df = df.set_index(['R_Number', 'C_Number'])
그런 다음 말하는 것이 조금 더 기능입니다.
df.set_index(['R_Number', 'C_Number']).Avg.unstack(level=1)
이런 식으로 평균 또는 표준 시스템을 사용하는 것이 암시 적입니다. 반면에 사용 pivot
하는 것은 순전히 어떤 의미인지에 대한 열 규칙을 기반으로합니다.
이 질문에 왔을 때 예상했던 것입니다.
#!/usr/bin/env python
import pandas as pd
df = pd.DataFrame([(1, 2, 3, 4),
(5, 6, 7, 8),
(9, 0, 1, 2),
(3, 4, 5, 6)],
columns=list('abcd'),
index=['India', 'France', 'England', 'Germany'])
print(df)
준다
a b c d
India 1 2 3 4
France 5 6 7 8
England 9 0 1 2
Germany 3 4 5 6
반응형
'ProgramingTip' 카테고리의 다른 글
JE / JNE와 JZ / JNZ의 차이점 (0) | 2020.10.21 |
---|---|
--no-colors와 같은 인공위성을 가진 .mocha 파일이 있습니까? (0) | 2020.10.21 |
sqlite는 선택에서 모든 종류의 IF (조건) 문을 지원합니까? (0) | 2020.10.21 |
다른 사전에 추가 (0) | 2020.10.21 |
'제로'의 Android 복수형 처리 (0) | 2020.10.21 |