Python, Pandas : DataFrame의 내용을 텍스트 파일로 씁니다.
저는 이런 팬더 데이터 프레임을 가지고 있습니다.
X Y Z Value
0 18 55 1 70
1 18 55 2 67
2 18 57 2 75
3 18 58 1 35
4 19 54 2 70
이 데이터를 다음과 같은 텍스트 파일에 쓰고 싶습니다.
18 55 1 70
18 55 2 67
18 57 2 75
18 58 1 35
19 54 2 70
저는 다음과 같은 것을 시도했습니다.
f = open(writePath, 'a')
f.writelines(['\n', str(data['X']), ' ', str(data['Y']), ' ', str(data['Z']), ' ', str(data['Value'])])
f.close()
정확하지 않습니다.어떻게 하는 거지?
np 속성을 사용하고 액세스할 수 있습니다..values
:
np.savetxt(r'c:\data\np.txt', df.values, fmt='%d')
산출량:
18 55 1 70
18 55 2 67
18 57 2 75
18 58 1 35
19 54 2 70
또는 :
df.to_csv(r'c:\data\pandas.txt', header=None, index=None, sep=' ', mode='a')
에 대한 참고 사항np.savetxt
추가 모드로 생성된 파일 핸들을 전달해야 합니다.
기본적인 방법은 다음과 같습니다.df.to_string()
:
with open(writePath, 'a') as f:
dfAsString = df.to_string(header=False, index=False)
f.write(dfAsString)
다음을 출력합니다.
18 55 1 70
18 55 2 67
18 57 2 75
18 58 1 35
19 54 2 70
또한 이 방법을 사용하여 인쇄할 열을 쉽게 선택할 수 있습니다.columns
속성을 사용하면 열을 유지하고 원하는 경우 레이블을 인덱스할 수 있으며 간격 ect에 대한 다른 속성을 가질 수 있습니다.
판다를 사용할 수 있습니다.데이터 프레임.to_csv 설정 및 둘 다 설정index
그리고.header
로.False
:
In [97]: print df.to_csv(sep=' ', index=False, header=False)
18 55 1 70
18 55 2 67
18 57 2 75
18 58 1 35
19 54 2 70
pandas.DataFrame.to_csv
파일에 직접 쓸 수 있습니다. 자세한 내용은 위에 연결된 문서를 참조하십시오.
파티에 늦음:사용해 보십시오>
base_filename = 'Values.txt'
with open(os.path.join(WorkingFolder, base_filename),'w') as outfile:
df.to_string(outfile)
#Neatly allocate all columns and rows to a .txt file
@Aegde - 탭 구분 출력을 가져오려면 sep='\t' 구분 기호를 사용합니다.
df.to _csv인 경우:
df.to_csv(r'c:\data\pandas.txt', header=None, index=None, sep='\t', mode='a')
np.save tax의 경우:
np.savetxt(r'c:\data\np.txt', df.values, fmt='%d', delimiter='\t')
탭 구분 형식으로 Excel 데이터를 텍스트 파일로 가져오는 방법.xlrd 뿐만 아니라 Panda도 사용해야 합니다.
import pandas as pd
import xlrd
import os
Path="C:\downloads"
wb = pd.ExcelFile(Path+"\\input.xlsx", engine=None)
sheet2 = pd.read_excel(wb, sheet_name="Sheet1")
Excel_Filter=sheet2[sheet2['Name']=='Test']
Excel_Filter.to_excel("C:\downloads\\output.xlsx", index=None)
wb2=xlrd.open_workbook(Path+"\\output.xlsx")
df=wb2.sheet_by_name("Sheet1")
x=df.nrows
y=df.ncols
for i in range(0,x):
for j in range(0,y):
A=str(df.cell_value(i,j))
f=open(Path+"\\emails.txt", "a")
f.write(A+"\t")
f.close()
f=open(Path+"\\emails.txt", "a")
f.write("\n")
f.close()
os.remove(Path+"\\output.xlsx")
print(Excel_Filter)
우리는 먼저 필터링된 데이터로 xlsx 파일을 생성한 다음 정보를 텍스트 파일로 변환해야 합니다.
요구 사항에 따라 \n \t를 사용하여 텍스트 파일에서 원하는 루프 및 데이터 유형을 지정할 수 있습니다.
약간 수정된 버전을 사용했습니다.
with open(file_name, 'w', encoding = 'utf-8') as f:
for rec_index, rec in df.iterrows():
f.write(rec['<field>'] + '\n')
저는 데이터 프레임 필드의 내용을 텍스트 파일로 작성해야 했습니다.
판다 비교 방법의 출력인 데이터 프레임이 있는 경우, 이러한 데이터 프레임은 인쇄 시 아래와 같습니다.
grossRevenue netRevenue defaultCost
self other self other self other
2098 150.0 160.0 NaN NaN NaN NaN
2110 1400.0 400.0 NaN NaN NaN NaN
2127 NaN NaN NaN NaN 0.0 909.0
2137 NaN NaN 0.000000 8.900000e+01 NaN NaN
2150 NaN NaN 0.000000 8.888889e+07 NaN NaN
2162 NaN NaN 1815.000039 1.815000e+03 NaN NaN
위에 보이는 대로 전체 데이터 프레임을 텍스트 파일로 유지하려고 했습니다.판다의 것을 사용합니다.to_csv
아니면 뚱딴지 같은savetxt
이 목표를 달성하지 못했습니다.오래된 것을 사용했습니다.print
텍스트 파일에 동일한 내용을 기록하는 방법:
with open('file1.txt', mode='w') as file_object:
print(data_frame, file=file_object)
언급URL : https://stackoverflow.com/questions/31247198/python-pandas-write-content-of-dataframe-into-text-file
'programing' 카테고리의 다른 글
PHP 헤더 리디렉션 301 - 의미는 무엇입니까? (0) | 2023.07.23 |
---|---|
틴터 창을 닫으려면 어떻게 해야 합니까? (0) | 2023.07.23 |
Oracle 10g을 사용할 때 Hibernate의 부동 소수점 열 스키마 유효성 검사와 관련하여 알려진 문제에 대한 가장 좋은 해결 방법은 무엇입니까? (0) | 2023.07.23 |
BIGINT(8)는 MySQL이 저장할 수 있는 가장 큰 정수입니까? (0) | 2023.07.23 |
Python에서 HDF5 파일을 읽는 방법 (0) | 2023.07.23 |