1. ホーム
  2. python

[解決済み] pandasを使ってデータフレームの任意の位置に行を挿入することは可能ですか?

2023-07-28 10:29:44

質問

このようなDataFrameオブジェクトを持っています。

       onset    length
1      2.215    1.3
2     23.107    1.3
3     41.815    1.3
4     61.606    1.3
...

あるインデックス値で指定された位置に行を挿入し、それに応じて次のインデックスを更新したいのです。例えば

       onset    length
1      2.215    1.3
2     23.107    1.3
3     30.000    1.3  # new row
4     41.815    1.3
5     61.606    1.3
...

どうするのが一番いいのでしょうか?

どのように解決するのですか?

スライスして、concatを使って欲しいものを得ることができます。

line = DataFrame({"onset": 30.0, "length": 1.3}, index=[3])
df2 = concat([df.iloc[:2], line, df.iloc[2:]]).reset_index(drop=True)

これで、例の出力にあるデータフレームが生成されます。私の知る限り、concatはpandasで挿入型の操作を実現するための最良の方法ですが、確かに私は決してpandasの専門家ではありません。