如何在数据框中使用lambda

0 投票
1 回答
2043 浏览
提问于 2025-05-16 18:50

我解决了这个问题,但我想知道为什么 lambda 不起作用。

我想把列名中的空格替换成下划线:

df.columns = df.columns.apply(lambda x: replaceable(' ','_'))

为什么这样不行呢?

不过,下面这个我就能成功了:

df.columns = df.columns.str.replace(' ','_')

为什么我不能用 lambda,我该怎么用呢?

相关问题:

  • 暂无相关问题
暂无标签

1 个回答

0

正如@JAV在评论中提到的,df.columns这个东西是没有.apply()这个方法的:

In [307]: df.columns.apply(lambda x: print(x))
...
skipped
...
AttributeError: 'Index' object has no attribute 'apply'

据我所知,最常用的解决办法要么是你提到的:

df.columns = df.columns.str.replace(' ','_')

要么是:

df = df.rename(columns=lambda x: x.replace(' ', '_'))

撰写回答