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

다음 DataFrame이 있다고 가정하십시오.

문자 번호
A 1
B 2
C 3
D 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)

이제 Letters 열에서 C 값을 얻고 싶습니다.

명령 줄

df[df.Letters=='C'].Letters

돌아올 것이다

2C
이름 : 문자, 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]

이 열 이름에 공백이나 대시 할 수 있습니다 문제 방지 -에 접속하여 의미 ..


답변

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'


답변