为什么熊猫块的行为与实际数据帧不同?

时间:2019-07-11 09:23:43

标签: python pandas

我想使用熊猫来处理本地硬盘上存在的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

我希望输出与在整个数据集上运行代码时获得的输出相同。

1 个答案:

答案 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