>

이것은 분석을 위해 최종 데이터 프레임을 만들기위한 것입니다. 따라서 세 종류의 csv 파일이 있습니다. 파일 1 및 파일 2에서 특정 열을 추출하여 파일 3에 연결하여 단일 csv 파일을 얻으려고합니다.

하위 폴더로 세 가지 유형의 파일이있는 하나의 폴더가 있습니다.->3 개의 하위 폴더입니다. 이 3 개의 하위 폴더에는 실험의 여러 부분에서 얻은 데이터가 포함되며 참가자 수별로 정렬됩니다. 예를 들어 참가자 1001의 경우 각 하위 폴더에 파일 p1001이 있습니다. 참가자 1002와 마찬가지로 각 폴더에는 p1002 등이 있습니다. 그래서 각 참가자마다 같은 이름이지만 다른 폴더의 세 파일이 있습니다. 세 명의 다른 하위 폴더에서 선택한 열을 결합하여 각 참가자에 대해 단일 CSV 파일을 만들려면 어떻게해야합니까?

import pandas as pd
import os, csv, pdb
import glob
a=[]
base_dir='/Users/...../Desktop/data/'
folders = ('All', 'Choice', 'Choice_S')
pattern = '{}/[{}]/**/filename.csv'.format(base_dir, ''.join(folders))
for filename in glob.glob(pattern):
    filename=pd.DataFrame
    df1=filename[filename['reaction_time']]
    a.append[df1

이것이 제가 시도한 것입니다

  • 답변 # 1

    한 가지 사례로 사례를 다시 만들려고했습니다

    3 개의 열과 100 개의 줄이 있고 각각 다른 폴더에있는 3 개의 무작위 파일을 생성했습니다

    import numpy as np 
    import pandas as pd
    
    a = np.random.rand(100,3) 
    b = np.random.rand(100,3) 
    c = np.random.rand(100,3) 
    
    dataframe1 = pd.DataFrame(a)
    dataframe2 = pd.DataFrame(b)
    dataframe3 = pd.DataFrame(c)
    dataframe1.columns = dataframe2.columns = dataframe3.columns = {"col1","col2","col3"}
    dataframe1.to_csv("./1/a.csv")
    dataframe2.to_csv("./2/a.csv")
    dataframe3.to_csv("./3/a.csv")
    
    
    

    그런 다음 csv 파일을 다시 읽은 다음 각 파일의 각 열에 대해 행을 결합하고 3 개의 파일 중 300 개의 결합 된 행을 포함하는 데이터 프레임에 결과를 저장했습니다 axis = 0으로pandas.concat을 사용한 다음 axis = 1과 동일한 함수를 사용하여 열을 결합했습니다

    a1 = pd.read_csv("./1/a.csv")
    a2 = pd.read_csv("./2/a.csv")
    a3 = pd.read_csv("./3/a.csv")
    
    combined_col1 = pd.concat([a1["col1"],a2["col1"],a3["col1"]],axis=0) 
    combined_col2 = pd.concat([a1["col2"],a2["col2"],a3["col2"]],axis=0) 
    combined_col3 = pd.concat([a1["col3"],a2["col3"],a3["col3"]],axis=0) 
    combine_col1_col2 = pd.concat([combined_col1,combined_col2],axis=1) 
    
    combine_col1_col2.to_csv("result.csv")
    
    
    

    도움이 되길 바란다

관련 자료

  • 이전 파이썬 코드에서 작동하도록 셀 수 없습니다
  • 다음 css - Chrome과 Firefox에서 z- 색인을 다르게 렌더링하는 이유는 무엇입니까?