2014-04-26 6 views
0

여러 데이터 프레임을 함께 결합하려고합니다. 이 데이터 프레임의 이름 목록은 아래에 표시된 companies이라는 다른 데이터 프레임에 저장됩니다. 목록을 아래로, 등등 joined=TUES.join(DRAM) 다음 joined=joined.join(NTRS)과 :배열에 따라 팬더 데이터 프레임에 합류하십시오.

>>> companies 
16: Symbols 
0 TUES 
1 DRAM 
2 NTRS 
3 PCBK 
4 CRIS 
5 PERY 
6 IRDM 
7 GNCMA 
8 IBOC 

내 목표는이 같은 일을하는 것입니다. 어떻게 이것을 달성하기 위해 companies 데이터 프레임의 Symbols 열의 요소를 참조 할 수 있습니까?

미리 감사드립니다.

답변

0

DataFrame을 정의하고 다른 모든 데이터 프레임을 추가 할 수 있습니다.

단지리스트로 값을 설정하여 예를 들어 너무

다음 CONCAT :

joined = pd.concat(list(companies['Symbols']), axis=1) 

combined_df = pandas.DataFrame() 
for df in other_dataframes: 
    combined_df = combined_df.append(df) 
0

사용 pd.concat, 그것은 DFS의 목록을 병합을 위해 설계되었습니다 : 아래의 예를 참조하십시오 예 :

In [4]: 

import pandas as pd 
import numpy as np 
df = pd.DataFrame({'a':np.random.randn(5), 'b':np.random.randn(5)}) 
df1 = pd.DataFrame({'c':np.random.randn(5), 'd':np.random.randn(5)}) 
df2 = pd.DataFrame({'e':np.random.randn(5), 'f':np.random.randn(5)}) 
df_list=[df,df2,df1] 
df_list 

Out[4]: 

[   a   b 
0 0.143116 1.205407 
1 -0.430869 1.429313 
2 0.059810 0.430131 
3 2.554849 -1.450640 
4 -1.127638 0.715323 

[5 rows x 2 columns],   e   f 
0 0.658967 1.150672 
1 0.813355 -0.252577 
2 0.885928 0.970844 
3 0.519375 -1.929081 
4 -0.217152 0.907535 

[5 rows x 2 columns],   c   d 
0 -1.375885 1.422697 
1 -0.870040 0.135527 
2 -0.696600 1.954966 
3 0.494035 -0.727816 
4 -0.367156 -0.216115 

[5 rows x 2 columns]] 

In [8]: 
# now concatenate the list of dfs, by column 
pd.concat(df_list,axis=1) 

Out[8]: 

      a   b   e   f   c   d 
0 0.143116 1.205407 0.658967 1.150672 -1.375885 1.422697 
1 -0.430869 1.429313 0.813355 -0.252577 -0.870040 0.135527 
2 0.059810 0.430131 0.885928 0.970844 -0.696600 1.954966 
3 2.554849 -1.450640 0.519375 -1.929081 0.494035 -0.727816 
4 -1.127638 0.715323 -0.217152 0.907535 -0.367156 -0.216115 

[5 rows x 6 columns] 
+0

도움을 다시 주셔서 감사합니다. 그러나 목록을 작성하는 방식에 문제가있는 것 같습니다. 회사 [ 'Symbols']는 데이터 프레임 자체와는 달리 데이터 프레임의 이름 인 문자열 목록입니다. 나는 목록을 append를 사용하여 while 루프로 작성했기 때문에 이것을했다 :'... row = pandas.DataFrame ('dict (Symbols = stock, Date = stockhistory.index [0])))''... companies = companies .append (row, ignore_index = True)'어색한 해결 방법을 찾았지만 흥미가 있습니다. 어떻게이 목록을 작성하여 기술과 함께 사용할 수 있습니까? – neanderslob

+0

죄송합니다. 회사 [ 'Symbols']가 데이터 프레임이 아닌 데이터 프레임의 목록이라는 사실에 혼란 스럽습니까? 데이터 프레임이 아니라 문자열이라는 사실은 다소 혼란 스럽습니다. 데이터 프레임이 단지 이름이고 이러한 데이터 프레임이 존재하지 않는다고 말하는 것입니까? 심볼 열을 다른 데이터 프레임에 추가하고 싶습니까? – EdChum

관련 문제