1. ホーム
  2. python

[解決済み] python pandas "cannot set row with mismatched columns"(列が一致しない行を設定できない)エラー

2022-02-14 07:33:37

質問内容

データセットに新しい行を追加する際に、問題に直面しています。

以下はその例です。 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']

エラー "列が不一致の行を設定できません" が表示されます。

どうすれば、この追加行を追加して、自動的に足りないc3を None またはNaN?

解決方法は?

一つの方法として 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