我试图获取链接并通过TinyURL推送它们。.我有一个包含“登录链接”列的数据框,我想单独获取并添加到{Tiny URL“列中,tiny_urlize
链接。 / p>
for index, row in df.iterrows():
df.loc[index, 'Tiny Url'] = tiny_urlize(row['Login Link'])
我遇到的错误是这样的:
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
但这正是我在做什么。我想念什么吗?
答案 0 :(得分:2)
由于许多不同的原因,可能会出现此错误,例如,常见的情况是df是另一个数据帧的切片。我怀疑如果在迭代之前写了df = df.copy()
,就不会收到错误消息。
您还可以通过将其写为apply
来简化和加快表达:
df['Tiny Url'] = df['Login Link'].apply(tiny_urlize)
我相信这也会阻止警告
答案 1 :(得分:0)
问题在于,您正在循环时使用loc更新df的值(本质上是切片)。尝试
for index, row in df.iterrows():
row['Tiny Url'] = tiny_urlize(row['Login Link'])
此外,大熊猫具有内置功能,这些功能对于这类事情非常有效,其中之一就是apply
。
df['Tiny Url'] = df['Login Link'].apply(tiny_urlize)