Python 如何将lambda与数据帧一起使用

Python 如何将lambda与数据帧一起使用,python,pandas,dataframe,lambda,Python,Pandas,Dataframe,Lambda,我能够解决这个问题,但不知道为什么lambda不起作用 我试图用下划线替换列名中的空格: df.columns = df.columns.apply(lambda x: replaceable(' ','_')) 为什么这样不行 然而,通过以下几点,我让它发挥了作用: df.columns = df.columns.str.replace(' ','_') 为什么我不能应用lambda以及如何应用它?正如@JAV在评论中所说-df。列没有方法.apply(): AFAIK最惯用的解决方案是您

我能够解决这个问题,但不知道为什么
lambda
不起作用

我试图用下划线替换列名中的空格:

df.columns = df.columns.apply(lambda x: replaceable(' ','_'))
为什么这样不行

然而,通过以下几点,我让它发挥了作用:

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

为什么我不能应用
lambda
以及如何应用它?

正如@JAV在评论中所说-
df。列
没有方法
.apply()

AFAIK最惯用的解决方案是您的:

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


没有
.apply
方法用于
pandas.indexes.base.Index
对象。
df.columns=[str(x)。df.columns中x的替换('''''.''.'''.'u')将提供类似于lambda语法的内容。
一般来说,您知道apply方法可以使用什么。我知道do.cols没有这种方法。是否有一种方法可以直观地知道(或硬规则)应用lambda组合可以使用什么?当然,您可以阅读文档:)
.apply
只能在和对象上使用。我总是检查。一般来说,您知道apply方法可以使用什么。我知道do.cols没有那种方法。有没有一种方法可以直觉地知道(或硬性规定)应用lambda组合可以使用什么-克里斯刚才edit@Kris,通常我使用或。使用它们,您可以键入例如
df.columns.
并按
TAB
-它将向我们显示所有可用的方法和属性-这是查看可用方法的最快和最方便的方式…当然,我也做了同样的事情,唯一的问题是它不会显示您是一个属性还是一个函数。撇开这一点不谈,我遇到了一个新的但类似的问题。假设我想忽略所有的NaN值。所以尝试了这个,但不起作用。你知道为什么吗,它也没有给我一个错误(也尝试了使用pd.np.nan)->df=df.applymap(lambda x:x!=“nan”)Jupy Notebook中intellisense的另一个问题-比方说,我想在.sum()之后对df.isnull().sum()进行排序(升序=False)它没有显示我的任何选项,我得到的只是.ipynb_检查点,R数据,R历史。你面临同样的问题吗。同样在Spyder中,即使是df,也没有显示任何内容@克里斯,它没有显示选项,因为Jypeter不知道将返回什么类型的对象。。。
df.columns = df.columns.str.replace(' ','_')
df = df.rename(columns=lambda x: x.replace(' ', '_'))