将列转换为DateTime时,如何使用Pandas.loc()函数?

2024-10-06 14:21:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在从事一个小项目,以解析和创建基于DNC原始数据的图形。到目前为止,它都可以正常工作,但我正在使用CopyWarning消除以下设置:

“设置为复制警告: 试图在数据帧切片的副本上设置值。 尝试改用.loc[row\u indexer,col\u indexer]=value

请参阅文档中的注意事项:http://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy 候选人['end_date']=pd.to_datetime(候选人州['end_date'])”

我已尝试将引用行更改为:

candidate.loc['end_date'] = pd.to_datetime(candidate_state['end_date'])

但这又给某种比较带来了另一个错误。有人能帮我弄清楚吗

谢谢大家!


Tags: to项目图形pandasdatetime原始数据datecandidate
1条回答
网友
1楼 · 发布于 2024-10-06 14:21:23

在没有看到完整代码的情况下很难确认,但此警告通常是由于您正在处理的数据帧(candidate在本例中)是较大数据帧的筛选选择的“副本”。换句话说,当您创建candidate时,您做了如下操作:

candidate = df_larger_dataset[df_larger_dataset['some_column'] == 'some_value']

得到警告的原因是,当您这样做时,实际上并没有创建新对象,只是创建了一个引用,这意味着当您开始对candidate进行更改时,您也在修改df_larger_dataset。这在您的上下文中可能很重要,也可能不重要,但为了避免警告,当您创建“候选者”时,请将其作为df_larger_dataset的显式副本:

candidate = df_larger_dataset[df_larger_dataset['some_column'] == some_value].copy()

相关问题 更多 >