Я хотел бы сохранить объект pandas.DataFrame в CSV-файл (используя DataFrame.to_csv()). Чтобы сделать его простым, вот ситуация; мой проект «Algos» содержит папку «ПВЗС» с файлом .txt под названием «plop.txt»:TypeError: Невозможно преобразовать объект '_io.TextIOWrapper' в str неявно
1,2
3,4
5,6
Мой сценарий здесь:
import numpy as np
import pandas as pa
# opening the file
dossier = "Plip"
fichier = "plop.txt"
fichier = open(dossier + "/" + fichier)
data = fichier.readlines()
# creating the data frame
Pair = []
Impair = []
for m in data:
impair = int(m[0:1])
pair = int(m[2:3])
Impair.append(impair)
Pair.append(pair)
M = np.array([Impair, Pair]).transpose()
Table = pa.DataFrame(M, columns = ["Impair", "Pair"])
#creating the .csv file
Table.to_csv(dossier + fichier + ".csv")
Таблица была создана correcty но сценарий Возврат:
runfile('C:/Users/******/Documents/PYTHON/Algos/truc.py', wdir='C:/Users/******/Documents/PYTHON/Algos')
Traceback (most recent call last):
File "<ipython-input-110-3c7306b8d61d>", line 1, in <module>
runfile('C:/Users/******/Documents/PYTHON/Algos/truc.py', wdir='C:/Users/******/Documents/PYTHON/Algos')
File "C:\Users\******\Documents\Gratuiciels\WINPYTHON.3355\python-3.3.5\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 601, in runfile
execfile(filename, namespace)
File "C:\Users\******\Documents\Gratuiciels\WINPYTHON.3355\python-3.3.5\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 80, in execfile
exec(compile(open(filename, 'rb').read(), filename, 'exec'), namespace)
File "C:/Users/******/Documents/PYTHON/Algos/truc.py", line 30, in <module>
Table.to_csv(dossier + fichier + ".csv")
TypeError: Can't convert '_io.TextIOWrapper' object to str implicitly
Я совершенно новый на Python, так что вы можете быть как можно точнее на свой ответ, пожалуйста?
Спасибо заранее
Попробуйте 'Table.to_csv (dossier + fichier.name +" .csv ")' вместо 'Table.to_csv (dossier + fichier +" .csv ")' –
Он работает, когда мы используем fichier.name; Я не получил то, что ожидал, но написал 'fichier.name [: len (fichier.name) - 4] +" .csv "вместо' dossier + fichier + ".csv" 'исправляет проблему. Спасибо большое :) –
Рад помочь - вы можете использовать только 'fichier.name [: - 4]', BTW. –