2017-05-10 4 views
1

I는 다음과 같습니다 데이터가 있습니다새 열을 추가하는 파이썬에서 for 루프를 사용하여 파일에 쓰기

print(data['ra'][0], data['dec'][0]) 
308.3194375 89.9638467 

을 나는 아주 간단하게 (!)는 파일에 쓰는하려면 :

f = open('output.dat', 'w') 
for ii in range(0, 10): 
    f.write(long(ii), data['ra'][ii], data['dec'][ii]) 
f.close() 

TypeError : write()는 하나의 인수 (주어진 3 개)를 사용합니다.

왜 이렇게 힘들지?!?!?

답변

0

@Nilesh이 특정 오류에 대한 정확하지만 광범위한 질문은 것 같다 "내가 어떻게이 CSV에 데이터를 쓸 수 있습니까?". 데이터가 저장되는 데이터 구조를 지정하지는 않지만 팬더 데이터 프레임과 매우 흡사합니다.이 경우 data.to_csv()은이 프로세스를 훨씬 단순하게 만듭니다. 그것은 dataframe 이미 아니라면

, 당신은 하나의로 변환 할 수 있습니다 :

import pandas as pd 
df = pd.DataFrame({'ra': data['ra'], 'dec': data['dec']}) 
df.to_csv('output.dat', sep=' ') 

당신이 구조의 다른 종류를 사용하는 경우 (예 : NumPy와 기록 배열 또는 AstroPy 테이블로), 당신은 찾을 수 있습니다 이러한 데이터 구조와 유사한 기능을 제공합니다.

2

3 인수를 전달하는 것이 잘못되었습니다.

f = open('output.dat', 'w') 
for ii in range(0, 10): 
    f.write("%d %d %d" % (long(ii), data['ra'][ii], data['dec'][ii])) 
f.close() 
0

쓰기 함수 주위에 다른 쌍의 괄호를 추가하기 만하면 작동합니다.