python - Pandas 中的方法链:str.replace 不起作用
问题描述
我想读入一个excel文件,并使用方法链接,将列名转换为小写,并将任何空格替换为_。以下代码运行良好
def supp_read(number):
filename = f"supplemental-table{number}.xlsx"
df = (pd.read_excel(filename,skiprows=5)
.rename(columns = str.lower))
return df
但是下面的代码没有
def supp_read(number):
filename = f"supplemental-table{number}.xlsx"
df = (pd.read_excel(filename,skiprows=5)
.rename(columns = str.lower)
.rename(columns = str.replace(old=" ",new="_")))
return df
添加该str.replace
行后,我收到以下错误:No value for argument 'self' in unbound method call
. 有人可以阐明我可以做些什么来解决此错误以及为什么上述方法不起作用?
此外,当我使用时,str.lower()
我得到了同样的错误。为什么str.lower
有效但无效str.lower()
?
解决方案
这是我经常使用的另一种语法:
def supp_read(number):
filename = f"supplemental-table{number}.xlsx"
df = pd.read_excel(filename,skiprows=5)
df.columns = df.columns.str.lower().replace(" ", "_")
return df
推荐阅读
- javascript - 如何在 react-chartjs-2 中的饼图图例中显示值
- c++ - 寻找指针初始化为 const int 和 int 的解释
- ansible - 如何在 ansible-tower 或 awx 中逐步完成剧本(如 ansible-playbook --step)?
- angular - 使用基于Angular的相同组件应用不同的背景图像?
- arrays - 释放后的地址消毒剂堆使用
- android - Android studio + kotlin 编译报错
- java - 用线检测拦截
- kubernetes - Helm 服务未部署到 Microk8s
- google-cloud-platform - 无法从 Google Compute Engine 元数据服务检索令牌。状态:404
- unity3d - 如何在 Unity 中激活所有隐藏的游戏对象