2017-01-17 4 views
0

'날짜'열에서 팬더를 사용하여 두 개의 데이터 프레임을 결합하려고합니다. 나는 보통 df2 = pd.concat ([df, df1], axis = 1)을 사용합니다. 그러나 어떤 이유로이 방법은 작동하지 않습니다.두 개의 다른 데이터 프레임 연결/병합/팬더

이 예제에서는 sql 파일에서 데이터를 가져 와서 '년'이라는 새 열을 만들어 내년과 월 열을 병합 한 다음 피벗합니다. Whne은 두 개의 데이터 프레임을 연결하고 연결합니다. 데이터 프레임은 병합되는 대신 나란히 표시됩니다.

무엇이까지 제공 :

의 고양이 날짜 백작의 날짜 카운트 내가 올하려면 : 개

어떤 아이디어가의 고양이 백작의

날짜 카운트를? 다른 문제는 날짜 열이 datetime 함수가 아닌 문자열로 기록되도록하는 것입니다. 해결책을 생각할 때이 점을 명심하십시오. 난 당신이 코드를 제거 할 수 있다고 생각

executeScriptsFromFile('cats.sql') 
df = pd.DataFrame(cursor.fetchall()) 
df.columns = [rec[0] for rec in cursor.description] 
monthend = {'Q1':'3/31','Q2':'6/30','Q3':'9/30','Q4':'12/31'} 
df['Date']=df['QUARTER'].map(monthend)+'/'+ df['YEAR'] 
df['Date'] = pd.to_datetime(df['Date']) 
df10= df.pivot_table(['Breed'], ['Date'], aggfunc=np.sum,fill_value=0) 
df10.reset_index(drop=False, inplace=True) 
df10.reindex_axis(['Breed', 'Count of Cats'], axis=1) 
df10.columns = ('Breed', 'Count of Cats') 


executeScriptsFromFile('dogs.sql') 
df = pd.DataFrame(cursor.fetchall()) 
df.columns = [rec[0] for rec in cursor.description] 
monthend = {'Q1':'3/31','Q2':'6/30','Q3':'9/30','Q4':'12/31'} 
df['Date']=df['QUARTER'].map(monthend)+'/'+ df['YEAR'] 
df['Date'] = pd.to_datetime(df['Date']) 
df11= df.pivot_table(['Breed'], ['Date'], aggfunc=np.sum,fill_value=0) 
df11.reset_index(drop=False, inplace=True) 
df11.reindex_axis(['Breed', 'Count of Dogs'], axis=1) 
df11.columns = ('Breed', 'Count of Dogs') 
df11a= df11.round(0) 

df12= pd.concat([df10, df11a],axis=1) 
+1

당신이 당신의 dataframes의 일부 샘플을 추가 할 수 있습니다 string 사용으로 변환 지수 또한

? 또한'df10.index'와'd11.index'의 타입의 차이점은 무엇입니까? 이것이 효과가 있어야하기 때문입니다. – jezrael

+1

잘 모르겠지만'df10.reset_index (drop = False, inplace = True)'및'df11.reset_index (drop = False, inplace = True)'를 제거해야 할 것 같습니다. – jezrael

+0

아니면 그냥 한 수준을 제거해야합니다'concat' 전에 두 데이터 프레임에서 인덱스로'date'가 필요합니다 – jezrael

답변

1

:

여기 내 코드입니다

df10.reset_index(drop=False, inplace=True) 
df11.reset_index(drop=False, inplace=True) 

때문에 date에 의해 concat에 대한 index의 필요 수준 date가.

df.inde = df.index.astype(str) 
관련 문제