试图在 DataFrame 的切片副本上设置一个值 - 尝试了以前的解决方案

这个问题已经出现过很多次了,但是提议的答案似乎没有帮助。

我有一个日期时间列,我正在尝试将其转换为 d/m/yh:m 格式。

我正在使用以下代码:

change_details.loc[:, 'Planned Start Date'] = change_details['Planned Start Date'].dt.strftime('%d %m, %Y %h:%m')

根据之前的答案,这应该是防止此警告的正确方法,但我仍然得到它:

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

我也尝试过使用 .copy() 后缀,但无济于事!

有任何想法吗?


富国沪深
浏览 51回答 1
1回答

万千封印

所以我发现我的问题,它位于代码的前面,我最初从另一个数据帧中切出了change_details。change_details = gdp_sched_today[[start_date', 'end_date']]change_details.columns = ['Planned Start Date', 'Planned End Date']change_details['Planned Start Date'] = change_details['Planned Start Date'].dt.strftime('%d/%m/%Y %h:%M')change_details['Planned End Date'] = change_details['Planned End Date'].dt.strftime('%d/%m/%Y %H:%M')我可以通过在第一行添加 .copy() 来解决这个问题,确保 Pandas 知道我打算将其设为副本而不是视图。change_details = gdp_sched_today[[start_date', 'end_date']].copy()change_details.columns = ['Planned Start Date', 'Planned End Date']change_details['Planned Start Date'] = change_details['Planned Start Date'].dt.strftime('%d/%m/%Y %h:%M')change_details['Planned End Date'] = change_details['Planned End Date'].dt.strftime('%d/%m/%Y %H:%M')如果警告能更清楚地说明触发它的原因,那就太好了:)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python