我有一个分层数据集:
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
。任何帮助将不胜感激。
答案 0 :(得分:0)
您可以通过以下几种方式实现:
import utilities.util
或(这将保留原始dtype)
df['A'] = df['A'].applymap('{:.2f}'.format)
或作为字符串
df['A'] = df['A'].round(2)