반응형
팬더 데이터 프레임 목록 연결
하나의 Panda 데이터 프레임에 결합하고 싶은 Panda 데이터 프레임 목록이 있습니다.Python 2.7.10과 Panda 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
하나의 팬더 데이터 프레임으로 변환합니다.또는 큰 테이블을 직접 데이터 프레임에 읽어들이는 방법chunksize
옵션은 매우 도움이 될 것입니다.
모든 데이터 프레임에 동일한 열이 있는 경우 다음과 같이 단순화할 수 있습니다.
import pandas as pd
df = pd.concat(list_of_dataframes)
몇 가지 세부사항을 추가하겠습니다.
예:
list1 = [df1, df2, df3]
import pandas as pd
행 단위 연결 및 인덱스 무시
pd.concat(list1, axis=0, ignore_index=True)
참고: 열 이름이 같지 않으면 NaN이 다른 열 값에 삽입됩니다.
열별 연결 및 열 이름 유지
pd.concat(list1, axis=1, ignore_index=False)
ignore_index=True인 경우 열 이름은 0에서 (n-1)까지의 숫자로 채워집니다. 여기서 n은 고유한 열 이름의 개수입니다.
모든 데이터 프레임에 동일한 열이 없는 경우 다음을 수행하십시오.
df = pd.DataFrame.from_dict(map(dict,df_list))
기능 프로그래밍으로도 수행할 수 있습니다.
from functools import reduce
reduce(lambda df1, df2: df1.merge(df2, "outer"), mydfs)
concat
또한 기존 데이터 프레임에 대해 "loc" 명령을 사용하여 목록 이해 기능을 수행해도 효과적입니다.
df = pd.read_csv('./data.csv') # ie; Dataframe pulled from csv file with a "userID" column
review_ids = ['1','2','3'] # ie; ID values to grab from DataFrame
# Gets rows in df where IDs match in the userID column and combines them
dfa = pd.concat([df.loc[df['userID'] == x] for x in review_ids])
팬더concat
와 함께 동작합니다.functools
from functors import reduce as reduce
import pandas as pd;
deaf = pd.read_csv("http://www.aol.com/users/data.csv")
for q in range(0, Len(deaf)):
new = map(lambda x: reduce(pd.concat(x))
언급URL : https://stackoverflow.com/questions/32444138/concatenate-a-list-of-pandas-dataframes-together
반응형
'programing' 카테고리의 다른 글
목록에서 가장 긴 문자열을 선택하는 Python의 가장 효율적인 방법? (0) | 2023.01.21 |
---|---|
mysql LOAD DATA/mysqlimport 성능 향상? (0) | 2023.01.21 |
MySQL 문자열에서 영숫자가 아닌 모든 문자를 제거하려면 어떻게 해야 합니까? (0) | 2023.01.21 |
PHP | define() vs. const. (0) | 2023.01.21 |
스크립트 언어(Perl, Python, Ruby 등)가 셸 언어로 적합하지 않은 이유는 무엇입니까? (0) | 2023.01.21 |