2016-03-17 8 views
5

まず、新しい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] 

を変更

+0

私は可能な解決策を見つけたようです:http://stackoverflow.com/questions/23688307/settingwithcopywarning-even-when-using-loc。誰か他の良いアイデアを持っていますか? – Osora

+0

あなたの意図は何ですか?コピーまたは元のdfを更新しますか? – EdChum

+0

@EdChumコピーを更新します。 – Osora

答えて

4

は、この警告がなくなります。

+0

素晴らしい!それは動作します!ありがとう〜! O(∩_∩)O – Osora

+0

ようこそ。がんばろう! –

関連する問題