我想使用熊猫来处理本地硬盘上存在的CSV文件。我已经准备好处理代码,并且如果我在整个数据集上运行代码,它也可以正常工作。当在块上运行相同的代码时,就会出现问题。
我认为这些块可能属于不同的数据类型,因此尝试使用type(chunk)
检查块的类型,它与type(whole_dataframe)
相同。
我尝试过的事情:
whole_data = pd.read_csv('data.csv', sep=',', header=0)
whole_data['cuisines'] = whole_data.cuisines.apply(lambda x: ','+x)
这给了我预期的结果。但是当我尝试在块上运行相同的代码时:
for chunk in pd.read_csv('data.csv', sep=',', header=0, chunksize=1000):
chunk['cuisines'] = chunk.cuisines.apply(lambda x: ','+x)
这给了我一个错误:TypeError: can only concatenate str (not "float") to str
我希望输出与在整个数据集上运行代码时获得的输出相同。
答案 0 :(得分:1)
这项工作:
for chunk in pd.read_csv('data.csv', sep=',', header=0, chunksize=1000):
chunk['cuisines'] = chunk.cuisines.apply(lambda x: ','+str(x))
更好:
for chunk in pd.read_csv('data.csv', sep=',', header=0, chunksize=1000):
chunk['cuisines'] = ',' + chunk.cuisines.astype(str).str