Pandas Dask-连接两个相同的列数据帧';行不通
我有两个没有标题行的数据帧,都有相同的逗号分隔列。 我试着将它们读入一个数据帧中Pandas Dask-连接两个相同的列数据帧';行不通,pandas,dask,Pandas,Dask,我有两个没有标题行的数据帧,都有相同的逗号分隔列。 我试着将它们读入一个数据帧中 dfoutputs = dd.read_csv(['outputsfile.csv', 'outputsfile2.csv'], names=colnames, header=None, dtype={'firstnr': 'Int64', 'secondnr': 'Int64', 'thirdnr': 'Int64', 'fourthnr': 'Int64'}) 但此数据帧仅包含outputsfile.csv行
dfoutputs = dd.read_csv(['outputsfile.csv', 'outputsfile2.csv'], names=colnames, header=None, dtype={'firstnr': 'Int64', 'secondnr': 'Int64', 'thirdnr': 'Int64', 'fourthnr': 'Int64'})
但此数据帧仅包含outputsfile.csv
行
Read和concat的类似问题:
colnames=['firstnr', 'secondnr', 'thirdnr', 'fourthnr']
dfoutputs = dd.read_csv('outputsfile.csv', names=colnames, header=None, dtype={'firstnr': 'Int64', 'secondnr': 'Int64', 'thirdnr': 'Int64', 'fourthnr': 'Int64'})
print(dfoutputs.head(10))
dfoutputs2 = dd.read_csv('outputsfile2.csv', names=colnames, header=None, dtype={'firstnr': 'Int64', 'secondnr': 'Int64', 'thirdnr': 'Int64', 'fourthnr': 'Int64'})
print(dfoutputs2.head(10))
dfnew = dd.concat([dfoutputs, dfoutputs2])
print(dfnew.head(10))
输出:
firstnr secondnr thirdnr fourthnr
0 0 0 0 5000000000
1 1 0 0 5000000000
2 2 0 0 5000000000
3 3 0 0 5000000000
4 4 0 0 5000000000
5 5 0 0 5000000000
firstnr secondnr thirdnr fourthnr
0 11 0 0 5000000000
1 12 0 0 5000000000
firstnr secondnr thirdnr fourthnr
0 0 0 0 5000000000
1 1 0 0 5000000000
2 2 0 0 5000000000
3 3 0 0 5000000000
4 4 0 0 5000000000
5 5 0 0 5000000000
如何将两个csv组合到同一个Dask数据帧?正如Tennitechboy在评论中所建议的:
f=open("outputsfile.csv", "a")
f2=open("outputsfile2.csv", "r")
f2content = f2.readlines()
for i in range(len(f2content)):
f.write(f2content[i])
f.close()
f2.close()
从内存的角度来看,可能需要在Dask中实现这一点。我认为应该使用append。这更直截了当。以文本文件、readline和append的形式打开另一个文件。这类似于
pd.concat([dfoutputs,dfoutputs2])
是的。唯一的区别是,您不会再创建另一个数据帧、更好的空间利用率和整洁的代码。看起来您在第一个代码段中尝试读取同一文件两次。@BrianLarsen谢谢,但这是一个输入错误。不幸的是,同样的问题。