복붙노트

[PYTHON] 하나의 팬더 데이터 프레임에 팬더 데이터 프레임 목록 결합

PYTHON

하나의 팬더 데이터 프레임에 팬더 데이터 프레임 목록 결합

하나의 팬더 데이터 프레임에 결합하고 싶은 팬더 데이터 프레임 목록이 있습니다. Python 2.7.10과 Pandas 0.16.2를 사용하고 있습니다.

나는에서 데이터 프레임의 목록을 만들었습니다 :

import pandas as pd
dfs = []
sqlall = "select * from mytable"

for chunk in pd.read_sql_query(sqlall , cnxn, chunksize=10000):
    dfs.append(chunk)

데이터 프레임 목록을 반환합니다.

type(dfs[0])
Out[6]: pandas.core.frame.DataFrame

type(dfs)
Out[7]: list

len(dfs)
Out[8]: 408

다음은 몇 가지 샘플 데이터입니다.

# sample dataframes
d1 = pd.DataFrame({'one' : [1., 2., 3., 4.], 'two' : [4., 3., 2., 1.]})
d2 = pd.DataFrame({'one' : [5., 6., 7., 8.], 'two' : [9., 10., 11., 12.]})
d3 = pd.DataFrame({'one' : [15., 16., 17., 18.], 'two' : [19., 10., 11., 12.]})

# list of dataframes
mydfs = [d1, d2, d3]

d1, d2 및 d3을 하나의 팬더 데이터 프레임에 결합하고 싶습니다. 또는, chunkksize 옵션을 사용할 때 데이터 테이블에 직접 큰 테이블을 읽는 방법이 매우 유용 할 것입니다.

해결법

  1. ==============================

    1.모든 데이터 프레임이 동일한 열을 가지고 있다고 가정하면 간단하게 연결할 수 있습니다.

    모든 데이터 프레임이 동일한 열을 가지고 있다고 가정하면 간단하게 연결할 수 있습니다.

    import pandas as pd
    df = pd.concat(list_of_dataframes)
    
  2. ==============================

    2.데이터 프레임에 모두 같은 열이있는 것이 아니라면 다음을 시도하십시오.

    데이터 프레임에 모두 같은 열이있는 것이 아니라면 다음을 시도하십시오.

       df = pd.DataFrame.from_dict(map(dict,df_list))
    
  3. ==============================

    3.함수 프로그래밍으로도 할 수 있습니다.

    함수 프로그래밍으로도 할 수 있습니다.

    reduce(lambda df1, df2: df1.merge(df2, "outer"), mydfs)
    
  4. from https://stackoverflow.com/questions/32444138/combine-a-list-of-pandas-dataframes-to-one-pandas-dataframe by cc-by-sa and MIT license