때때로 열 이름을 공유하는 팬더 데이터 프레임으로 변환되는 데이터 파일이 있습니다. 시계열 인덱스를 공유하는 다른 데이터 프레임은 일치 할 때마다 열과 인덱스를 기반으로 하나의 데이터 프레임으로 결합하고자합니다 . 이름 지정에 시퀀스가 없으므로 연결을 위해 무작위로 나타납니다. 두 개의 데이터 프레임에 서로 다른 열이 연결되어있는 경우 axis=1
이 제대로 작동하지만 결과 데이터 프레임이 이전 병합 된 팬더 데이터 프레임 중 하나의 열 이름과 함께 새 df와 결합되는 경우 연결되지 않습니다. 이러한 데이터 files로 예를 들면 : 나는 그렇게 할 때특정 시퀀스를 따르지 않은 Concat pandas 데이터 프레임
import pandas as pd
df1 = pd.read_csv('0.csv', index_col=0, parse_dates=True, infer_datetime_format=True)
df2 = pd.read_csv('1.csv', index_col=0, parse_dates=True, infer_datetime_format=True)
df3 = pd.read_csv('2.csv', index_col=0, parse_dates=True, infer_datetime_format=True)
data1 = pd.DataFrame()
file_list = [df1, df2, df3] # fails
# file_list = [df2, df3,df1] # works
for fn in file_list:
if data1.empty==True or fn.columns[1] in data1.columns:
data1 = pd.concat([data1,fn])
else:
data1 = pd.concat([data1,fn], axis=1)
나는 ValueError: Plan shapes are not aligned
를 얻을. 필자의 경우 모든 DataFrames를 먼저로드하고 열 이름을 확인할 방법이 없습니다. 이제는 df
과 같은 열 이름을 합쳐서 concat
과 결합 할 수 있습니다. 다른 열 이름을 가진이 결과 데이터 프레임은 axis=1
에 따라 항상 다음과 같이 작동합니다. 그러나 모든 DataFrames를 미리로드하고 연결 시퀀스를 다시 정렬해야하는 솔루션은 필자의 경우 불가능합니다 (위의 작업 예제에서만 완료되었습니다). 정보가 나오는 순서에 관계없이 더 큰 데이터 프레임 data1
과 연결할 수있는 유연성이 필요합니다. 제안 된 적절한 접근 방법이 있으면 알려주십시오.