设置新数据框列的值:
df.loc[df["Measure] == metric.label, "source_data_url"] = metric.source_data_url
现在(从Pandas版本2.1.0开始)给出了一个警告,
FutureWarning:
Setting an item of incompatible dtype is deprecated and will raise in a future error of pandas. Value ' metric_3' has dtype incompatible with float64, please explicitly cast to a compatible dtype
first.
Pandas文档讨论了如何为Series解决这个问题,但并不清楚如何迭代地解决这个问题(上面的行在指标上的循环中被调用,并且它是给出警告的最终指标)。如何做到这一点?
1条答案
按热度按时间qij5mzcb1#
我也有同样的问题。我的直觉是,当你第一次给列
source_data_url
赋值时,这个列还不存在,所以pandas创建了一个列source_data_url
,并给它的所有元素赋值NaN
。这使得Pandas认为列的dtype
是float64
。然后它提出了这个警告。我的解决方案是用一些默认值创建列,例如。空字符串,在向其添加值之前:
df["source_data_url"] = ""
或者
None
似乎也可以工作:df["source_data_url"] = None