[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'