首页 > 解决方案 > python pandas“无法设置列不匹配的行”错误

问题描述

向数据集添加新行时遇到问题。

这是示例DataFrame

column_names = ['A','B','C']
items = [['a1','b1','c1'],['a2','b2']]
newDF = pd.DataFrame(items,columns=column_names)
print(newDF)

输出:

    A   B     C
0  a1  b1    c1
1  a2  b2  None

由于缺少 c2,因此将其替换为None. 这很好,正如预期的那样。

现在,如果我继续向现有的添加类似的行DataFrame,如下所示:

newDF.loc[len(newDF)] = ['a3','b3']

我收到错误“无法设置列不匹配的行”。

我怎样才能添加这个额外的行,以便它会自动处理丢失的 c3None或 NaN?

标签: pythonpandasdataframe

解决方案


一种选择是DataFrame.append

>>> new_row = ['a3', 'b3']
>>> newDF.append(pd.Series(new_row, index=newDF.columns[:len(new_row)]), ignore_index=True)
    A   B     C
0  a1  b1    c1
1  a2  b2  None
2  a3  b3   NaN

推荐阅读