2017-04-15 3 views
1

동일한 CSV에서 두 개의 팬더 데이터 프레임 위에 다른 제목을 인쇄하려면 어떻게해야합니까? 인쇄 명령을 시도했지만 제목이 CSV 대신 터미널에 인쇄되었습니다.위의 제목 인쇄 방법 pandas dataframe (.to_csv)

if __name__ == "__main__": 
V = result 
W = reference 
H = np.random.random([5,5100]) 
basis_mat, coef_mat = nmf_nimfa(V, W, H) 

basis_df = pd.DataFrame(data=basis_mat) 
coef_df = pd.DataFrame(data=coef_mat) 

with open('NMF_nimfa.csv', 'w') as f: 
    print "Matrix 1" 
    coef_df.to_csv(f) 
with open('NMF_nimfa.csv', 'a') as f: 
    print "Matrix 1" 
    basis_df.to_csv(f) 

답변

2

필요 쓰기가 write을 사용하여 텍스트로 새 행을 제기 할 경우 .to_csv() 함수를 호출 할 때

with open('NMF_nimfa.csv', 'a') as f: 
    f.write("Matrix 1 \n") 
    coef_df.to_csv(f) 
    f.write("Matrix 1 \n") 
    basis_df.to_csv(f) 
1

path_or_buf 매개 변수를 지정하지 않으면 - 그것은 문자열을 반환합니다. 그래서 당신은 단순히 반환 CSV 문자열로 제목을 연결할 수 있습니다 :

f.write("Matrix 1 \n" + oef_df.to_csv()) 

내 솔루션 potentionally 큰 DFS

을위한 MemoryError이 발생할 수 있습니다 거대한 DataFrames에 대한 @jezrael's solution을 사용하는 것이 좋습니다 것 PS