まず、新しいDataFrameフレームを作成します。次に、フレームからいくつかのデータをフィルタリングして新しいフレーム2を作成します。今、私はフレーム2ためにいくつかの値を割り当てる:パンダ設定中.CopyWarningを試した後.loc
import numpy as np
from pandas import DataFrame
frame = DataFrame(np.arange(9).reshape((3, 3)), index=['a', 'c', 'd'], columns=['Ohio', 'Texas', 'California'])
mask = frame['Texas'] > 1
print frame[mask]
frame2 = frame.loc[mask]
frame2.loc['c', 'Ohio'] = 'me'
print frame2
が、私はこの警告だ:私はお勧めの.locの構文を使用しましたが、私はこの警告を得続ける理由
C:\Python27\lib\site-packages\pandas\core\indexing.py:461: 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
を?私はこの警告を避けるために何をすべきか?
frame2 = frame.loc[mask].copy()
に
frame2 = frame.loc[mask]
を変更
私は可能な解決策を見つけたようです:http://stackoverflow.com/questions/23688307/settingwithcopywarning-even-when-using-loc。誰か他の良いアイデアを持っていますか? – Osora
あなたの意図は何ですか?コピーまたは元のdfを更新しますか? – EdChum
@EdChumコピーを更新します。 – Osora