반응형
인덱스 및 개체 유형이 아닌 Pandas DataFrame에서 값을 가져오는 방법
다음과 같은 데이터 프레임이 있다고 가정합니다.
문자 번호A 1B2C 3D 4
다음 코드를 통해 얻을 수 있습니다.
import pandas as pd
letters = pd.Series(('A', 'B', 'C', 'D'))
numbers = pd.Series((1, 2, 3, 4))
keys = ('Letters', 'Numbers')
df = pd.concat((letters, numbers), axis=1, keys=keys)
이제 문자 열에서 C 값을 얻고 싶습니다.
명령줄
df[df.Letters=='C'].Letters
돌아올 것입니다
2 C이름: 문자, dtype: 객체
어떻게 하면 두 라인 출력 전체가 아닌 C 값만 얻을 수 있습니까?
df[df.Letters=='C'].Letters.item()
선택한 항목에서 반환된 인덱스/시리즈의 첫 번째 요소를 반환합니다.이 경우 값은 항상 첫 번째 요소입니다.
편집:
또는 loc()를 실행하여 첫 번째 요소에 액세스할 수 있습니다.이것은 더 짧았고 제가 과거에 실행했던 방식입니다.
사용values값을 np 배열로 반환한 다음 사용할 속성[0]첫 번째 값을 얻는 방법:
In [4]:
df.loc[df.Letters=='C','Letters'].values[0]
Out[4]:
'C'
편집
저는 개인적으로 첨자 연산자를 사용하여 열에 액세스하는 것을 선호합니다.
df.loc[df['Letters'] == 'C', 'Letters'].values[0]
이렇게 하면 열 이름에 공백이나 대시가 있을 수 있는 문제가 방지됩니다.-즉, 사용하여 액세스하는 것은..
사용할 수 있습니다.loc인덱스 및 열 레이블을 사용합니다.
df.loc[2, 'Letters']
# 'C'
참조로 "숫자" 열을 선호하는 경우 인덱스로 설정할 수 있습니다.
df.set_index('Numbers').loc[3, 'Letters']
나는 이 청소기가 필요하지 않기 때문에 이 청소기를 찾습니다.[0]또는.item().
import pandas as pd
dataset = pd.read_csv("data.csv")
values = list(x for x in dataset["column name"])
>>> values[0]
'item_0'
편집:
데이터셋을 기존 어레이처럼 인덱싱할 수 있습니다.
import pandas as pd
dataset = pd.read_csv("data.csv")
first_value = dataset["column name"][0]
>>> print(first_value)
'item_0'
제 생각에 좋은 옵션은 먼저 단일 라인 데이터 프레임을 시리즈로 전환한 다음 다음 인덱스를 작성하는 것입니다.
df[df.Letters=='C'].squeeze()['Letters']
언급URL : https://stackoverflow.com/questions/30787901/how-to-get-a-value-from-a-pandas-dataframe-and-not-the-index-and-object-type
반응형
'codememo' 카테고리의 다른 글
| 상수 식에서 0으로 나누기 (0) | 2023.06.17 |
|---|---|
| iOS의 Firebase Analytics 이벤트가 표시되지 않음 (0) | 2023.06.17 |
| VueJS + VUEX - 데이터 전송 관련 문제 (0) | 2023.06.12 |
| Angular2 경로 변경 주의사항 (0) | 2023.06.12 |
| AVAudioPlayer가 디버그 모드에서 중단점을 던집니다. (0) | 2023.06.12 |