[解決済み] pandas DataFrameの特定のセルに対して、インデックスを使用して値を設定する
2022-03-15 14:16:46
質問
PandasのDataFrameを作成しました。
df = DataFrame(index=['A','B','C'], columns=['x','y'])
そして、このようになりました。
x y A NaN NaN B NaN NaN C NaN NaN
次に、特定のセル、例えば行に値を割り当てたいと思います。
C
と列
x
.
このような結果になると予想されます。
x y A NaN NaN B NaN NaN C 10 NaN
このコードで
df.xs('C')['x'] = 10
しかし
df
は変わっていない。データフレームには、またしても
NaN
s.
何かご意見はありますか?
解決方法は?
RukTechの回答
,
df.set_value('C', 'x', 10)
は、私が以下に提案するオプションよりもはるかに高速です。しかし、これまで
非推奨
.
今後は
推奨される方法は
.iat/.at
.
なぜ
df.xs('C')['x']=10
は機能しません。
df.xs('C')
は、デフォルトでは新しいデータフレームを返します。
をコピーしたものです。
のデータなので
df.xs('C')['x']=10
はこの新しいデータフレームのみを変更します。
df['x']
のビューを返します。
df
データフレームなので
df['x']['C'] = 10
を変更します。
df
そのものです。
警告 : ある操作がコピーとビューのどちらを返すかを予測するのが難しい場合があります。このため docs では、"chained indexing" を使用した代入を避けることを推奨しています。 .
つまり、推奨される代替案は
df.at['C', 'x'] = 10
どの
する
モディファイ
df
.
In [18]: %timeit df.set_value('C', 'x', 10)
100000 loops, best of 3: 2.9 µs per loop
In [20]: %timeit df['x']['C'] = 10
100000 loops, best of 3: 6.31 µs per loop
In [81]: %timeit df.at['C', 'x'] = 10
100000 loops, best of 3: 9.2 µs per loop
関連
-
[解決済み] for'ループでインデックスにアクセスする?
-
[解決済み] PandasでDataFrameの行を反復処理する方法
-
[解決済み] Pandas DataFrameからカラムを削除する
-
[解決済み] Pandasのデータフレームで複数の列を選択する
-
[解決済み] Pandas DataFrameの行数を取得する方法は?
-
[解決済み] Pandas DataFrameの特定の列の値がNaNである行を削除する方法
-
[解決済み] pandasを使った "大量データ "ワークフロー【終了しました
-
[解決済み] データフレームのセルから値を取得するには?
-
[解決済み】forループを使った辞書の反復処理
-
[解決済み】Pandas DataframeのカラムでNaN値をゼロに置き換えるには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Python 人工知能 人間学習 描画 機械学習モデル作成
-
Python jiabaライブラリの使用方法について説明
-
Pythonの学習とデータマイニングのために知っておくべきターミナルコマンドのトップ10
-
Pythonコードの可読性を向上させるツール「pycodestyle」の使い方を詳しく解説します
-
パッケージングツールPyinstallerの使用と落とし穴の回避
-
[解決済み】 NameError: グローバル名 'xrange' は Python 3 で定義されていません。
-
[解決済み】 AttributeError("'str' object has no attribute 'read'")
-
[解決済み】Python: OverflowError: 数学の範囲エラー
-
[解決済み] パンダの.atと.locの比較
-
[解決済み】PandasでSettingWithCopyWarningに対処する方法