【发布时间】:2022-01-24 16:46:44
【问题描述】:
我经常使用以下方法将单行附加到数据框。我真正喜欢它的一件事是它允许您附加一个简单的 dict 对象。例如:
# Creating an empty dataframe
df = pd.DataFrame(columns=['a', 'b'])
# Appending a row
df = df.append({ 'a': 1, 'b': 2 }, ignore_index=True)
再一次,我最喜欢这个的地方是代码非常干净,只需要很少的行。现在我想推荐的替代方案是:
# Create the new row as its own dataframe
df_new_row = pd.DataFrame({ 'a': [1], 'b': [2] })
df = pd.concat([df, df_new_row])
所以之前的一行代码现在是两行带有一次性变量和额外的杂乱无章的地方,我在其中创建了新的数据框。 :( 有没有像我过去那样使用字典的好方法(不推荐使用)?
【问题讨论】:
-
pandas issue 35407 解释说
df.append已被弃用,因为:“Series.append 和 DataFrame.append [正在] 类比 list.append,但这是一个不好的类比,因为行为不是(并且不能)到位。需要复制索引和值的数据以创建结果。" -
今天遇到了这个警告。但是,当我使用 concat 作为替代方案时,我得到“无法连接类型为 '
' 的对象;只有 Series 和 DataFrame objs 有效”。太令人沮丧了.....
标签: python pandas dataframe data-wrangling data-munging