首页 > 解决方案 > 将数据框粘贴到 python 字典中的数据框上

问题描述

我想创建一个字典,其中键是城市名称,值是熊猫数据框列表,这些数据框由该城市中实例的 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 并没有连接数据帧,并且长度对应于一个数据帧的长度。

友好的问候,并提前感谢任何答案:)

标签: pythonpandasdictionarydataframeappend

解决方案


city_idframes_dictionary[city] = pd.DataFrame(df)

您没有将列表定义为值(正如您所说的那样),而是一个数据框。采用:

city_idframes_dictionary[city] = [pd.DataFrame(df)]

反而。


推荐阅读