2013-06-27 2 views
0

저는 판다 데이터 프레임의 많은 프로세스가있는 커다란 파이썬 프로그램을 가지고 있습니다. 각 프로세스의 끝에서 출력을 텍스트 파일에 작성해야합니다. 따라서 전체 프로그램 동안 텍스트 파일은 "to_csv"및 "write"메소드로 업데이트되어야합니다. 다음은 텍스트 파일을 작성하는 데 사용하는 일부 행입니다. 문제는 텍스트 파일이 프로그램의 마지막 프로세스 행으로 덮어 쓰여진다는 것입니다. 나는 프로그램 동안 텍스트 파일을 여러 번 쓰고 싶다.하나의 텍스트 파일을 to_csv 및 쓰기 메소드로 여러 번 작성하십시오.

out = open('results.txt','a') 

out.write('Message') 
out.write(head.idxmax()) 
df.sort(columns='Requests', ascending=False).to_csv('results', sep=' ') 

자세한 설명이 필요하면 알려주세요.

답변

2

.to_csv에 대한 mode 인수를 사용하십시오.

In [5]: df = DataFrame({'A': ['foo', 'foo', 'foo', 'bar', 'bar'], 
       'B': ['one', 'two', 'three', 'one', 'two'], 
       'C': np.random.randn(5)}) 


In [6]: with open('test.txt', 'w') as f: 
    ...:  f.write('Testing\n') 
    ...:  


In [7]: !cat 'test.txt' 
Testing 


In [11]: df.to_csv('test.txt', mode='a') 

In [12]: !cat 'test.txt' 
Testing 
,A,B,C 
0,foo,one,0.42364430570326805 
1,foo,two,1.1992467813307852 
2,foo,three,0.4302171615562164 
3,bar,one,0.6837252733791036 
4,bar,two,0.16800783901724345 
+2

방금 ​​테스트 한 결과 정상적으로 작동했습니다. 첫 번째 변경 사항을 작성하고 있는지 확인하십시오. 컨텍스트 관리자를 사용하십시오. open ('results.txt', 'a')을 f로 : f.write ('Hello'); df.to_csv ('results.txt', mode = 'a') – TomAugspurger

+0

감사합니다. 매우 많은 톰! 그것은 일했습니다 .. :) 이전 코멘트에 대해 유감스럽게 생각합니다! –

관련 문제