Python 格式化csv数据并将其写入文本文件以进行机器学习
如何排列已从.csv更改为.txt文件的数据。我想为我的机器学习代码这样做Python 格式化csv数据并将其写入文本文件以进行机器学习,python,csv,Python,Csv,如何排列已从.csv更改为.txt文件的数据。我想为我的机器学习代码这样做 import csv csv_file = ('traindata.csv') txt_file = ('traindata.txt') with open(txt_file, "w") as my_output_file: with open(csv_file, "r") as my_input_file: [ my_output_file.write(" ".join(row)+'\n') f
import csv
csv_file = ('traindata.csv')
txt_file = ('traindata.txt')
with open(txt_file, "w") as my_output_file:
with open(csv_file, "r") as my_input_file:
[ my_output_file.write(" ".join(row)+'\n') for row in csv.reader(my_input_file)]
my_output_file.close()
这将给我一个结果,看起来像这样(见下文),并保存到.txt文件中
x y z
0 -222.0 34.0 75.0
1 -222.0 34.0 75.0
2 -223.0 41.0 72.0
3 -223.0 41.0 72.0
4 -223.0 41.0 72.0
5 -231.0 36.0 78.0
6 -231.0 36.0 78.0
7 -231.0 36.0 78.0
但是,我希望它看起来像这样(见下文)。这样我就可以将数据提取到我的主代码中,用于机器学习
X:-219, Y:5, Z:96
X:-219, Y:5, Z:96
X:-218, Y:5, Z:101
X:-218, Y:5, Z:101
X:-218, Y:5, Z:101
X:-215, Y:7, Z:99
这是因为我希望我的主代码能够从.txt文件中提取数据
r = []
i = 0
e = glob.glob('traindata.txt')
for g in range(len(e)):
if e[i>0]:
file = open(e[i], 'r')
lines = file.readlines()
file.close()
t1 = []
z1 = []
y1 = []
x1 = []
for line in lines:
parts = line.split(", ")
if len(parts) > 3:
column1 = parts[3].split(':')
column2 = column1[1]
column3 = parts[2].split(':')
column4 = column3[1]
column5 = parts[1].split(':')
column6 = column5[1]
column7 = parts[0].split(':')
column8 = column7[1]
T = column2[0:len(column2)]
Z = column4[0:len(column4)]
Y = column6[0:len(column6)]
X = column8[0:len(column8)]
# pdb.set_trace()
T1 = float(T)
t1.append(T1)
X1 = float(X)
x1.append(X1)
Y1 = float(Y)
y1.append(Y1)
Z1 = float(Z)
z1.append(Z1)
i += 1
m = x1+y1+z1
r.append(m)
r = np.matrix(r)
csv文件数据:
行
提供值列表,您可以在将其写入文件之前将其分配给X
、Y
和Z
import csv
csv_file = ('traindata.csv')
txt_file = ('traindata.txt')
with open(txt_file, "w") as my_output_file:
with open(csv_file, "r") as my_input_file:
next(my_input_file) # skip first row
line = ['X:{} Y:{} Z:{}'.format(int(float(row[0])),int(float(row[1])), int(float(row[2]))) for row in csv.reader(my_input_file)]
my_output_file.write("\n".join(line))
my_output_file.close()
输入csv文件
-222.0, 34.0, 75.0
-222.0, 34.0, 75.0
-223.0, 41.0, 72.0
输出文本文件
X:-222 Y:34 Z:75
X:-222 Y:34 Z:75
X:-223 Y:41 Z:72
行
提供值列表,您可以在将其写入文件之前将其分配给X
、Y
和Z
import csv
csv_file = ('traindata.csv')
txt_file = ('traindata.txt')
with open(txt_file, "w") as my_output_file:
with open(csv_file, "r") as my_input_file:
next(my_input_file) # skip first row
line = ['X:{} Y:{} Z:{}'.format(int(float(row[0])),int(float(row[1])), int(float(row[2]))) for row in csv.reader(my_input_file)]
my_output_file.write("\n".join(line))
my_output_file.close()
输入csv文件
-222.0, 34.0, 75.0
-222.0, 34.0, 75.0
-223.0, 41.0, 72.0
输出文本文件
X:-222 Y:34 Z:75
X:-222 Y:34 Z:75
X:-223 Y:41 Z:72
X:-222.0,Y:34.0,Z:75.0,这是我得到的结果,这是正确的,但是有没有办法把它改成整数而不是浮点?你想把所有的值都改成整数吗?是的,我想把所有的值都改成整数我得到了这个错误,ValueError:无法将字符串转换成浮点:,不知道为什么,但在我的csv文件中,数据是整数而不是浮点,但当它保存到txt时,它变成了浮点。CSV数据=
x y z
-222 34 75-222 34 75您可以发布CSV的内容,包括第一行吗?x:-222.0,y:34.0,z:75.0,这是我得到的正确结果,但是有没有办法把它改成整数而不是浮点数?你想把所有的值都改成整数吗?是的,我想把所有的值都改成整数。我得到了这个错误,ValueError:无法将字符串转换成浮点数:,不知道为什么,但是在我的csv文件中,数据是整数而不是浮点数,但是当它保存到txt中时,它变成了浮点数。CSV数据=x y z
-222 34 75-222 34 75您可以发布CSV的内容,包括第一行吗?