マイパンダのデータフレーム:パイソン:SettingWithCopyWarningは:値は、データフレームからスライスのコピーに設定されるようにしようとしている
dframe = pd.DataFrame({"A":list("abcde"), "B":list("aabbc"), "C":[1,2,3,4,5]}, index=[10,11,12,13,14])
A B C
10 a a 1
11 b a 2
12 c b 3
13 d b 4
14 e c 5
マイ所望の出力:
A B C a b c
10 a a 1 1 None None
11 b a 2 2 None None
12 c b 3 None 3 None
13 d b 4 None 4 None
14 e c 5 None None 5
アイデアが新しい作成することです'B'列の値に基づいて列を作成し、それぞれの値を 'C'列にコピーして新しく作成した列に貼り付けます。 ここに私のコードです:3.xでこのコードは、Python 2.7でうまく
SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame
See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
app.launch_new_instance()
ではなく、私はこのエラーになってしまった
lis = sorted(list(dframe.B.unique()))
#creating empty columns
for items in lis:
dframe[items] = None
#here copy and pasting
for items in range(0, len(dframe)):
slot = dframe.B.iloc[items]
dframe[slot][items] = dframe.C.iloc[items]
どこが間違っているの?
dframe = pd.concat([dframe, to_be_appended], axis=1)
連結次に
to_be_appended = pd.get_dummies(dframe.B).replace(0, np.nan).mul(dframe.C, axis=0)
と
非常に簡単! 0よりもむしろNoneを得る考え? – ramesh
「NaN」を含むように編集されました – piRSquared