gpt4 book ai didi

python - Pandas 系列中的复制警告

转载 作者:行者123 更新时间:2023-11-28 19:22:17 25 4
gpt4 key购买 nike

我有一个日期时间格式的列,我想将其更改为日期格式。

db['Date'] = db['Date'].apply(lambda x: x.date())

然后我收到警告:

__main__:1: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_index,col_indexer] = value instead

我做了一些搜索并将其更改为:

db.loc[:,'Date'] = db.loc[:,'Date'].apply(lambda x: x.date())

错误信息是:

    if isnull(other) or (np.isscalar(other) and other == tslib.iNaT):
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

当我尝试为系列分配新值时也会发生此错误:

db['new'] = db.apply(lambda x: my_func(x['A'],x['B']))

谁能建议这里发生了什么,我怎样才能摆脱警告?

我注意到我可以通过设置 db.is_copy = False 来关闭警告,但我宁愿将其保留在那里以防我确实遇到重要错误。所以我还是希望做点什么让代码充分运行而不会出现警告信息。

提前致谢。

最佳答案

我使用

设置值
df['THING'] = df['THING'].apply(function)

一直以来。正如 Wes 在他的 notes 中指出的那样在这个问题上,警告是一种启发式的。当您以这种方式分配时,您并不总是在 View 上设置。进行分配,然后调用 df.head()(或其他),看看您的框架是否真的发生了变化。如果有,谁在乎是否有警告?

关于python - Pandas 系列中的复制警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22340246/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com