【发布时间】:2018-05-18 22:15:57
【问题描述】:
我有以下代码:
for state in state_list:
state_df = pd.DataFrame()
for df in pd.read_csv(tax_sample,sep='\|\|', engine='python', dtype = tax_column_types, chunksize = 10, nrows = 100):
state_df = pd.concat(state_df,df[df['state'] == state])
state_df.to_csv('property' + state + '.csv')
我的数据集非常大,我将它分成块(实际上这些块会大于 10 obs)。我正在获取每个块并检查状态是否与列表中的特定状态匹配,如果是,则将其存储在数据框中并保存下来。 简而言之,我正在尝试获取一个包含许多不同状态的数据帧并将其分解为多个数据帧,每个数据帧只有一个状态并保存到 CSV。
但是,上面的代码给出了错误:
TypeError: first argument must be an iterable of pandas objects, you 传递了一个“DataFrame”类型的对象
知道为什么吗?
谢谢,
迈克
【问题讨论】:
-
您可能想了解
pd.concat()的工作原理。你叫错了。 -
pd.concat(state_df,df[df['state'] == state])应该是pd.concat([state_df,df[df['state'] == state]]),注意[]中传递的参数,所以它是一个数据帧列表。