우선, 내가 아는 것보다 더 많은 실수가있을 수있다. 나는 새로운 것이라는 사실을 전혀 이해하지 못한다. 다음 그림과 같이 테이블을 인덱싱하려고합니다. 열 A와 B를 점차적으로 읽고 추가하는 중입니다. 합계로 각 15000 개의 행과 함께 500 개의 파일을 읽습니다. 이제 다음 그림과 같이 MultiIndex를 사용해야합니다. 그러나 팬더 계층 구조 인덱스 및 MultIndex를 사용하여 루프 내에서이를 수행 할 수있는 방법을 찾지 못했습니다. 모든 데이터 포인트와 숫자에 대해 루프를 수행하는 방법이 있습니까? 파이썬을 가진 루프를 가진 계층 적 다중 인덱스 테이블
all_data = pd.DataFrame()
for f in glob.glob("path_in_dir"):
df = pd.read_table(f, delim_whitespace=True,
names=('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'),
dtype={'A': np.float32, 'B': np.float32, 'C': np.float32,
'D': np.float32,'E': np.float32, 'F': np.float32,
'G': np.float32,'H': np.float32})
all_data = all_data.append(df,ignore_index=True)
all_data.index.names = ['numbers']
내가 추가 사용하고있는 모든 데이터
print(all_data)
을 보여하지만 나는 또한 속도를 증가하는 것이 중요 할 것이다 pd.concat
같은 효율적이지 어딘가에 읽기 메모리 사용을 줄입니다. 나는이 방법으로 그것을 시도 할 때 : all_data = pd.concat(df,ignore_index=True)
을 나는 오류 얻을 :
첫 번째 인수는 팬더 객체의 반복자이어야합니다, 당신은 내가 단지 D 열을 얻는 순간 유형 "DataFrame"
의 객체를 전달 하지만 0부터 끝까지 계산해서 30000까지 2 개의 파일을 만들 수 있습니다. 따라서 각 파일 데이터 포인트를 세지 않고 분할합니다. 새로운 이름의 길이가되어야합니다 1
? 입력 소스가 무엇입니까? 모든 데이터가 포함 된 단일 DataFrame을 가져 왔습니까? .set_index ([ 'col1', 'col2'])'그냥 해봤 어. 현재 귀하가 시도한 바를 알고 있거나 귀하가 어디에 있는지 알 수 없으므로 도움이 필요하다고 제안하는 것이 명확하지 않습니다. –
@JonClements 내 문제에 대해 더 나은 아이디어를 얻으려면 아래의 내 대답을 참조 해 주셔서 감사합니다. – newpyguy
원본 데이터의 모습을 게시 할 수 있습니까? –