Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么熊猫数据块的行为与实际数据帧不同?_Python_Pandas - Fatal编程技术网

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

Python 为什么熊猫数据块的行为与实际数据帧不同?,python,pandas,Python,Pandas,我想使用pandas将本地硬盘上的CSV文件分块处理。我已经准备好了处理代码,如果我在整个数据集上运行代码,它将不会出现任何错误。当相同的代码在块上运行时,问题就会出现 我认为可能块是不同的数据类型,所以尝试使用type(chunk)检查块的类型,它与type(whole\u dataframe)相同 我尝试的是: whole_data = pd.read_csv('data.csv', sep=',', header=0) whole_data['cuisines'] = whole_dat

我想使用pandas将本地硬盘上的CSV文件分块处理。我已经准备好了处理代码,如果我在整个数据集上运行代码,它将不会出现任何错误。当相同的代码在块上运行时,问题就会出现

我认为可能块是不同的数据类型,所以尝试使用
type(chunk)
检查块的类型,它与
type(whole\u 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:只能将str(而不是“float”)连接到str

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

这是否有效:

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

你能分享csvI吗?对不起,我不能。这是我办公室的敏感数据。但是如果您想知道每个单元格/值的数据类型,那么在整个列中都是相同的。第一部分对我有效,第二部分仅在我从末尾删除“.str”时有效。我想你弄错了。尽管如此,您的逻辑表明我应该首先将每个值更改为string类型,然后执行add操作。但是为什么需要它,我已经检查了“cuisines”列的数据类型,并且是string类型