代码是这样的:

import pandas as pd

df = pd.read_excel("abc.xlsx", sheet_name="sheet1")
df[['b','c']] = df[['b','c']].apply(lambda x: x*100)
df[['b','c']] = df[['b','c']].apply(lambda x: round(x, 1))
df[['b','c']] = df[['b','c']].astype(str) + '%'

我得到了想要的结果,因为:

     a               b               c
0   Savings         0.8%            4.5%
1   Interest rate   50.5%           65.0%
2   Current         1.9%            4.0%
3   Other           4.3%            5.5%

但我只是想知道是否可以在不反复提及列名的情况下将最后3行放在一行中. 谢谢

推荐答案

在这种情况下,不需要呼叫df.apply,使用带有单个表达式的重新赋值:

df[['b', 'c']] = df[['b', 'c']].mul(100).round(1).astype(str) + '%'

Python-3.x相关问答推荐

这是重命名极地df列的最好方式吗?

安装grpcio时出现错误DeproationWarning:pkg_resource

S的两极是什么,相当于大Pandas 的`.ilo‘方法?

从PYTHON中获取单行和多行的Rguar表达式

给定panda代码的分组和百分比分布pyspark等价

当我在正则表达式末尾使用斜杠时,为什么会得到不同的结果?

通过 Pandas 通过用户定义函数重命名数据框列

如果原始字符串包含正斜杠,如何返回具有不同可能性的新字符串

非拉丁字符的Python正则表达式不起作用

聚合(aggregate)为最多包含两个元素的列表

在气流中运行 DAG 时出现处理信号:ttou消息

命名元组内命名元组的 Python 语法

Python 错误:IndexError:字符串索引超出范围

PIL 在图像上绘制半透明方形覆盖

在python中打印下标

plt.cm.get_cmap 中可以使用哪些名称?

finally 总是在 try 块返回之前运行,那么为什么 finally 块中的更新不会影响 try 块返回的变量的值呢?

python asyncio add_done_callback 与 async def

如何将发音相似的词放在一起

Python:如何在 Windows 资源管理器中打开文件夹(Python 3.6.2、Windows 10)