gpt4 book ai didi

python - applymap() 不适用于 Pandas MultiIndex Slice

转载 作者:太空宇宙 更新时间:2023-11-04 05:12:05 25 4
gpt4 key购买 nike

我有一个分层数据集:

df = pd.DataFrame(np.random.rand(6,6),
columns=[['A','A','A','B','B','B'],
['mean', 'max', 'avg']*2],
index=pd.date_range('20000103', periods=6))

我想对 A 列下的所有值应用一个函数。我可以将值设置为:

df.loc[slice(None), 'A'] = 1

很简单。现在,如果我想将映射应用于此 MultiIndex 切片,而不是分配值,它不起作用。

例如,让我应用一个简单的格式化语句:

df.loc[slice(None), 'A'].applymap('{:.2f}'.format)

这一步没问题。但是,我不能将其分配给原始 df:

df.loc[slice(None), 'A'] = df.loc[slice(None), 'A'].applymap('{:.2f}'.format)

一切都变成了NaN。任何帮助将不胜感激。

最佳答案

您可以通过多种方式完成:

df['A'] = df['A'].applymap('{:.2f}'.format)

或(这将保留原始数据类型)

df['A'] = df['A'].round(2)

或作为字符串

df['A'] = df['A'].round(2).astype(str)

关于python - applymap() 不适用于 Pandas MultiIndex Slice,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42729642/

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