【发布时间】:2022-11-14 12:10:29
【问题描述】:
我目前有一个形状为 (16280, 13) 的 DataFrame。我想为单个列中的特定行分配值。我最初是这样做的:
for idx, row in enumerate(df.to_dict('records')):
instances = row['instances']
labels = row['labels'].split('|')
for instance in instances:
if instance not in relevant_labels:
labels = ['O' if instance in l else l for l in labels]
df.iloc[idx]['labels'] = '|'.join(labels)
但是由于最后一行,这一直返回SettingWithCopyWarning。我尝试将其更改为df.loc[idx, 'labels'] = '|'.join(labels),它不再返回警告,但在我的代码的后半部分导致错误。
我注意到使用iloc 时DataFrame 的大小为(16280, 13),使用loc 时为(16751, 13)。
如何防止打印警告并获得与使用iloc 相同的功能?
【问题讨论】: