Python 为什么这个附加程序是错误的-使用熊猫?
我有2个.csv文件: fileA:每行有784个值(我有大约60000行) fileB:这也有60000行,但每行只有一个值Python 为什么这个附加程序是错误的-使用熊猫?,python,python-3.x,pandas,Python,Python 3.x,Pandas,我有2个.csv文件: fileA:每行有784个值(我有大约60000行) fileB:这也有60000行,但每行只有一个值 '1\n' 我想附加这2个文件,以便fileC将fileA附加到fileB。也就是说,在fileC中,fileB的值将是第一个值,然后是fileA的其余(784)个值,以得到结果(每行785个值) 例如文件 '1,0,0,0,0,0,0,215,150,0,0,0,0,1,0,0,69,152,143,238,211,136,143,154,89,0,0,0,...,
'1\n'
我想附加这2个文件,以便fileC将fileA附加到fileB。也就是说,在fileC中,fileB的值将是第一个值,然后是fileA的其余(784)个值,以得到结果(每行785个值)
例如文件
'1,0,0,0,0,0,0,215,150,0,0,0,0,1,0,0,69,152,143,238,211,136,143,154,89,0,0,0,...,0\n'
我正试图通过以下方式使用熊猫来实现这一点:
a = pd.read_csv("/Users/usr/Images.csv")
b = pd.read_csv("/Users/usr/Labels.csv")
con = pd.concat([a,b],axis=1)
con.to_csv("testCON.csv", index = False)
但我生成的.csv文件非常大,包含小数点:
'0,0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0,...'
我如何正确地做到这一点
编辑:
这是fileA中1行的外观:
这就是我的结果:
我认为需要
header=None
读取csv
无头,然后在concat
中交换b
和a
,如上所述:
或者在没有熊猫的情况下自己滚动:
import csv
with open("/Users/usr/Images.csv") as a, open("/Users/usr/Labels.csv") as b, open("testCON.csv", 'w') as outfile:
rdr_a, rdr_b, out = csv.reader(a), csv.reader(b), csv.writer(outfile)
for line_a, line_b in zip(rdr_a,rdr_b):
line_b.extend(line_a)
out.writerow(line_b)
如果你想让b排在a之前,那么为什么在
con=pd.concat([a,b],axis=1)
中做[a,b]而不做[b,a]?这是正确的做法,兄弟们,你可能有小数点,因为你在数据中的某个地方有空值,列中的空值不能是整数NaN
是一个浮点。@cᴏʟᴅsᴘᴇᴇᴅ 很抱歉,但这只是技术性的,结果似乎是每行1568个值,而不是785个。我现在添加了一张图片。@Bn.F76-而且似乎所有数据都在一列中
a = pd.read_csv("csvTestImageSmall10 copy.csv", header=None)
b = pd.read_csv("csvTestLabelSmall10 copy.csv", header=None)
con = pd.concat([b,a],axis=1)
print (con)
con.to_csv("testCON.csv", index = False, header=None)
import csv
with open("/Users/usr/Images.csv") as a, open("/Users/usr/Labels.csv") as b, open("testCON.csv", 'w') as outfile:
rdr_a, rdr_b, out = csv.reader(a), csv.reader(b), csv.writer(outfile)
for line_a, line_b in zip(rdr_a,rdr_b):
line_b.extend(line_a)
out.writerow(line_b)