gpt4 book ai didi

python - 试图在 DataFrame 的切片副本上设置一个值

转载 作者:太空狗 更新时间:2023-10-29 20:55:45 24 4
gpt4 key购买 nike

我有一个 dataframe 列 period,它的值按季度(Q1、Q2、Q3、Q4)我想转换成相关的月份(见字典)。我的下面的代码有效,但想知道为什么我会收到此警告。

试图在 DataFrame 的切片副本上设置一个值。尝试使用 .loc[row_indexer,col_indexer] = value 代替

quarter = {"Q1":"Mar","Q2":"Jun","Q3":"Sep","Q4":"Dec"}
df['period'] = df['period'].astype(str).map(quarter)

最佳答案

“试图在 DataFrame 的切片副本上设置一个值”是一个警告。 SO 包含许多关于此主题的帖子。

df.assign 是在 Pandas 0.16 中添加的,是避免此警告的好方法。

quarter = {"Q1": "Mar", "Q2": "Jun", "Q3": "Sep", "Q4": "Dec"}
df = pd.DataFrame({'period': ['Q1', 'Q2', 'Q3', 'Q4', 'Q5'], 'qtr': [1, 2, 3, 4, 5]})

df
period qtr
0 Q1 1
1 Q2 2
2 Q3 3
3 Q4 4
4 Q5 5

df = df.assign(period=[quarter.get(q, q) for q in df.period])

# Unmapped values unchanged.
>>> df
period qtr
0 Mar 1
1 Jun 2
2 Sep 3
3 Dec 4
4 Q5 5

df = pd.DataFrame({'period': ['Q1', 'Q2', 'Q3', 'Q4', 'Q5'], 'qtr': [1, 2, 3, 4, 5]})
df = df.assign(period=df.period.map(quarter))

# Unmapped values get `NaN`.
>>> df
period qtr
0 Mar 1
1 Jun 2
2 Sep 3
3 Dec 4
4 NaN 5

Assign new columns to a DataFrame, returning a new object (a copy) with all the original columns in addition to the new ones.

.. versionadded:: 0.16.0

关于python - 试图在 DataFrame 的切片副本上设置一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36928487/

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