【发布时间】:2016-07-28 18:24:26
【问题描述】:
我已在 Python 3 Jupyter 笔记本中的数据框中读取了一份 Excel 调查回复表,并希望删除个人在某个特定程序中的行。所以我使用 .loc 将数据帧“df”子集到新的数据帧“dfgeneral”。
notnurse = df['Program Code'] != 'NSG'
dfgeneral = df.loc[notnurse,:]
然后我想将标签(即满意、不满意)映射到用于表示它们的代码,并找出给出每个响应的受访者数量。几个问题使用相同的比例,所以我循环了它们:
q5list = ['Q5_1','Q5_2','Q5_3','Q5_4','Q5_5','Q5_6']
scale5_dict = {1:'Very satisfied',2:'Satisfied',3:'Neutral',
4:'Somewhat dissatisfied',5:'Not satisfied at all',
np.NaN:'No Response'}
for i in q5list:
dfgeneral[i] = df[i].map(scale5_dict)
print(dfgeneral[i].value_counts(dropna=False))
在输出中,我收到 SettingWithCopy 警告:
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
我使用 .loc 创建 dfgeneral;这是误报,还是我应该做些什么改变?感谢您的帮助。
【问题讨论】:
标签: python pandas dataframe subset