codememo

인덱스 및 개체 유형이 아닌 Pandas DataFrame에서 값을 가져오는 방법

tipmemo 2023. 6. 12. 21:32
반응형

인덱스 및 개체 유형이 아닌 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

반응형