【发布时间】:2018-12-07 13:04:21
【问题描述】:
我想创建一个字典,其中键是城市名称,值是熊猫数据框列表,这些数据框由该城市中实例的 ID 组成。目前我有以下代码:
city_idframes_dictionary = dict()
if city in city_idframes_dictionary:
city_idframes_dictionary[city].append(pd.DataFrame(df))
else:
city_idframes_dictionary[city] = pd.DataFrame(df)
然后当我尝试使用以下方法访问数据框列表时:
for city in cities_new:
frame_list = city_frames_dictionary.get(city)
city_frames = pd.concat(frame_list, ignore_index=True)
但是此时我收到以下错误:
TypeError: first argument must be an iterable of pandas objects, you passed an object of type "DataFrame"
对我的步骤的调查表明,由于某种原因,每个键只添加了一个数据帧作为值。这很奇怪,因为我认为 append 会列出一个数据帧列表,我以后可以使用 pd.concat() 进行连接
那么为什么即使我创建了几个帧,但只添加一个帧作为城市键的值?
注意:不是 append 已经连接数据帧,因为我检查过并且长度对应于一个数据帧的长度。
友好的问候,并提前感谢任何答案:)
【问题讨论】:
标签: python pandas dictionary dataframe append