pandas的DataFrame使用apply实现对多列,多行操作
最近在总结模型效果的时候,结果DataFrame中一列是模型效果Result,一列是效果的std。但是展示的时候想写成Result ± std的形式。但是在尝试用apply对多列进行操作的时候总是报错,查了一下,是忘了设置axis=1这个参数。以下是总结&举例。我们可以用DataFrame的apply函数实现对多列,多行的操作。需要记住的是,参数axis设为1是对列进行操作,参数axis设
·
最近在总结模型效果的时候,结果DataFrame
中一列是模型效果Result
,一列是效果的std
。但是展示的时候想写成Result ± std
的形式。但是在尝试用apply
对多列进行操作的时候总是报错,查了一下,是忘了设置axis=1
这个参数。以下是总结&举例。
我们可以用DataFrame的apply函数实现对多列,多行的操作。
需要记住的是,参数axis
设为1是对列进行操作,参数axis
设为0是对行操作。默认是对行操作。
多列操作举例
现在有如下一个DataFrame
:
np.random.seed(1)
df = pd.DataFrame(np.random.randn(4,2), columns=['A', 'B'])
df
>>>
A B
0 1.624345 -0.611756
1 -0.528172 -1.072969
2 0.865408 -2.301539
3 1.744812 -0.761207
对A, B
两列操作,生成C
列, 其中C
是字符串,由A ± B
组成。下面看一下结果就明白了。
df['C'] = df.apply(lambda x: '{:.2f}±{:.2f}'.format(x['A'], x['B']), axis=1)
看一下效果
A B C
0 1.624345 -0.611756 1.62±-0.61
1 -0.528172 -1.072969 -0.53±-1.07
2 0.865408 -2.301539 0.87±-2.30
3 1.744812 -0.761207 1.74±-0.76
多行操作举例
同理可以作用在多行上。
df.loc[10] = df.apply(lambda x: '{:.2f}±{:.2f}'.format(x[2], x[3]) )
看一下实现的效果
A B
0 1.624345 -0.611756
1 -0.528172 -1.072969
2 0.865408 -2.301539
3 1.744812 -0.761207
10 0.87±1.74 -2.30±-0.76
更多推荐
已为社区贡献5条内容
所有评论(0)