python Pandas "cannot set a row with mismatched columns"错误

标签 python pandas dataframe

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

这是示例 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']

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

我如何添加这个额外的行,以便它自动处理缺少的带有 None 或 NaN 的 c3?

最佳答案

一个选项是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

关于 python Pandas "cannot set a row with mismatched columns"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53569997/

相关文章:

python - Python中将Json Dict对象转换为DataFrame

python - pandas 使用索引在新列中添加新值

Python pandas,多索引,切片

python - 从 python 数据框的列构造二分图

python - 根据月份和日期创建日期时间列,并根据月份创建年份

python - 如何让 Python 输入循环读取和更新列表项

python - 使用 Seaborn 将一维时间序列绘制为一条线,并沿 y 轴绘制边缘直方图

python - 使用 unixODBC 时无法在 AWS Lambda 中找到 ODBC 驱动程序

python - 将重复列名列表和值列表转换为数据框

python - 选择至少 x 列高于平均水平的行