programing

Python, Pandas : DataFrame의 내용을 텍스트 파일로 씁니다.

newstyles 2023. 7. 23. 14:07

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