我有一个如下所示的数据框。我想做的是创建另一个基于索引值的列(因此,除10以外的任何内容都将具有另一列并标记为“ 0”)。我尝试过:
df['Disp'] = '0'
df['Disp'][df.index < 10] = '1'
但是我收到错误消息“ SettingWithCopyWarning:”
df = pd.DataFrame({ 'Hora': [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],
'EUGE': ['RE','RE','RE','RE','RE','RE','RE','RE','RE','RE','RE','RE','RE','RE','RE'],
'Tipo_Dato': ['DM','DM','DM','DS','DS','DS','DM','DS','DS','DM','DM','DM','DS','DM','DM']})
我应该得到:
Hora EUGE Tipo_Dato Disp
0 1 RE DM 0
1 2 RE DM 0
2 3 RE DM 0
3 4 RE DS 0
4 5 RE DS 0
5 6 RE DS 0
6 7 RE DM 0
7 8 RE DS 0
8 9 RE DS 0
9 10 RE DM 0
10 11 RE DM 1
11 12 RE DM 1
12 13 RE DS 1
13 14 RE DM 1
答案 0 :(得分:0)
您还可以使用Assign返回数据框的副本。
df.assign(Disp = np.where(df.index<10,1,0))
答案 1 :(得分:0)
您可以这样操作:
RewriteCond %{QUERY_STRING} !^q=$
RewriteRule ^$ "https://product-qa.z.apteka24.ua" [P]
输出:
df['Dist'] = (df.index >= 10 ).astype(int)
取决于最初创建df的方式,如果您通过切片更大的数据帧来创建df,则可以使用df_larger = df [condition] .copy()来防止出现“ SettingWithCopy”警告消息。这不是错误,只是警告您对df所做的更改可能不会传播回df_larger。