2016-08-25 3 views
3

이 같은 CONCAT를 사용하여 dataframe 만들 :왜 연결된 팬더 데이터 프레임을 참조해도 여러 항목이 반환됩니까?

import pandas as pd 
dfa = pd.DataFrame({'a':[1],'b':[2]}) 
dfb = pd.DataFrame({'a':[3],'b':[4]}) 
dfc = pd.concat([dfa,dfb]) 

을 그리고 나는 내가 다음과 같은 결과를 얻을 다른 DataFrame에 대해서와 같이 참조하려고 :

>>> dfc['a'][0] 
0 1 
0 3 
Name: a, dtype: int64 

내가 내 연결된 DataFrame을 기대를 일반 DataFrame처럼 작동하고이 간단한 DataFrame처럼 정수를 반환합니다.

>>> dfa['a'][0] 
1 

나는 초보자입니다. 거기에 왜 동일한 호출이 내가 원하는 단일 항목이 아닌 전체 DataFrame을 반환하는지에 대한 간단한 설명이 있습니까? 또는 연결된 DataFrame을 참조 할 때 일반 DataFrame처럼 응답하도록하는 쉬운 방법입니다. 아니면 내가 concat 이외의 뭔가를 사용해야합니까?

답변

2

정상적인 동작을 착각했습니다. dfc['a'][0]은 레이블 조회이며 인덱스 값이 0 인 모든 항목과 일치합니다.이 경우 두 개의 데이터 프레임을 0을 포함한 인덱스 값과 연결했기 때문에 두 개가 있습니다. 의 위치를 ​​지정하기 위해

0

dfc['a'].iloc[0] 

하거나

dfc = pd.concat([dfa,dfb], ignore_index=True) 
dfc['a'][0] 

이 두

1 
2

편집을 할 (들으을 반환처럼 dfc을 건설 한 수 3,113,210의 코멘트)

사용 append() 대신 pd.concat() :

dfc = dfa.append(dfb, ignore_index=True) 
dfc['a'][0] 
1 
+0

예. 다른 결과가 있습니까? – ragesz

+0

네 말이 맞아! 나는 내 대답을 삭제한다 ... Thx! – ragesz