Python 为什么熊猫数据块的行为与实际数据帧不同?
我想使用pandas将本地硬盘上的CSV文件分块处理。我已经准备好了处理代码,如果我在整个数据集上运行代码,它将不会出现任何错误。当相同的代码在块上运行时,问题就会出现 我认为可能块是不同的数据类型,所以尝试使用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
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类型