移除chunksize后Python代码出现TypeError的原因解析
移除pd.read_csv的chunksize参数后触发TypeError的原因
问题场景
原有代码通过pd.read_csv指定chunksize=1000000可正常执行,移除该参数后出现如下报错:
TypeError: cannot concatenate object of type '<class 'str'>'; only Series and DataFrame objs are valid
原有代码:
import pandas as pd df_list = [] file_path = 'houses.txt' for chunk in pd.read_csv(file_path, chunksize=1000000, names=['Size()sqft', 'No of bedrooms', 'No of floors', 'Age of home', 'Price(1000s dollar)']): df_list.append(chunk) df = pd.concat(df_list) print(df_list)
问题原因
- 当指定
chunksize参数时,pd.read_csv返回TextFileReader迭代器,每次循环迭代出的chunk是DataFrame类型的分块数据,df_list里存储的都是DataFrame,后续pd.concat可以正常拼接。 - 移除
chunksize后,pd.read_csv直接返回完整的DataFrame对象。此时用for chunk in ...循环这个DataFrame,实际是遍历DataFrame的列名(字符串类型),df_list里存的全是字符串,而pd.concat仅支持拼接Series或DataFrame,因此触发TypeError。
内容的提问来源于stack exchange,提问作者Syed Mohmmad Ali Jafri
相关产品推荐
相关产品推荐

