【问题标题】:paste dataframe on dataframe in python dictionary将数据框粘贴到 python 字典中的数据框上
【发布时间】: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


    【解决方案1】:

    city_idframes_dictionary[city] = pd.DataFrame(df)
    

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

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

    改为。

    【讨论】:

    • 非常敏锐的 Eypros,非常感谢您的回答,它就像一个魅力! :)
    • 对不起,stackoverflow 很新。接受!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-15
    • 1970-01-01
    • 1970-01-01
    • 2013-09-12
    • 2016-04-07
    相关资源
    最近更新 更多