データフレームの特定の列の各要素にスカラーを掛けるにはどうすればよいですか?以下のような何か行う (私はSOに見て試してみましたが、適切なソリューションを見つけることができないよう)Python:Pandasデータフレームに列全体にスカラーを掛ける方法
:
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
注:可能な場合は、
df['quantity'] *= -1 # trying to multiply each row's quantity column with -1
は私に警告を与えます私は、データフレームを繰り返し処理し、このようなことをしたくありません。ループ全体を書くことを必要とせずに、標準の数学演算を列全体で行うことができると思います。
for idx, row in df.iterrows():
df.loc[idx, 'quantity'] *= -1
EDIT:
私はパンダ
完全なトレースの0.16.2
を実行しています:
SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
See the the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
self.obj[item] = s
'dtype'を使用してその列のタイプをチェックしてください。私はそのエラーを再現することはできません、完全なトレースバックを与えることも良いです。 – Leb
完全なトレースを追加するために編集しました...また、エラーではなく、警告(わかりやすくするために) – labheshr
私はそれがその行以外の何かによって引き起こされていると思います。以前から生成された。あなたが得ているのは、データフレームをスライスすることです。 – Leb