Python 为什么我们需要在api的最后一个示例中使用lambda函数;pandas.DataFrame.iloc";?
我们可以在Click中看到最后一个示例 我练习它,认为我们可以放弃“lambda df:”。我能理解lambda函数。但是,“lambda df:”这里有什么有用的吗?您可以检查: .loc、.iloc以及[]索引可以接受可调用的索引器。可调用函数必须是一个具有一个参数(调用序列、数据帧或面板)的函数,并返回用于索引的有效输出 所以需要调用select的函数:Python 为什么我们需要在api的最后一个示例中使用lambda函数;pandas.DataFrame.iloc";?,python,pandas,Python,Pandas,我们可以在Click中看到最后一个示例 我练习它,认为我们可以放弃“lambda df:”。我能理解lambda函数。但是,“lambda df:”这里有什么有用的吗?您可以检查: .loc、.iloc以及[]索引可以接受可调用的索引器。可调用函数必须是一个具有一个参数(调用序列、数据帧或面板)的函数,并返回用于索引的有效输出 所以需要调用select的函数: np.random.seed(2019) df1 = pd.DataFrame(np.random.randn(6, 4),
np.random.seed(2019)
df1 = pd.DataFrame(np.random.randn(6, 4),
index=list('abcdef'),
columns=list('ABCD'))
print (df1)
A B C D
a -0.217679 0.821455 1.481278 1.331864
b -0.361865 0.685609 0.573761 0.287728
c -0.235634 0.953490 -1.689625 -0.344943
d 0.016905 -0.514984 0.244509 -0.189313
e 2.672172 0.464802 0.845930 -0.503542
f -0.963336 0.064969 -3.205040 1.054969
嗯……使用callable似乎只是一种习惯,而且它的多功能性更强。谢谢大家!@WilliamSkyrme-这是一项功能,但是否使用仍取决于您。在我看来,没有必要使用它,但有时代码应该是一行,如果使用它。但如果对大多数人来说更具可读性,则不确定。
np.random.seed(2019)
df1 = pd.DataFrame(np.random.randn(6, 4),
index=list('abcdef'),
columns=list('ABCD'))
print (df1)
A B C D
a -0.217679 0.821455 1.481278 1.331864
b -0.361865 0.685609 0.573761 0.287728
c -0.235634 0.953490 -1.689625 -0.344943
d 0.016905 -0.514984 0.244509 -0.189313
e 2.672172 0.464802 0.845930 -0.503542
f -0.963336 0.064969 -3.205040 1.054969
print (df1.iloc[:, lambda df1: [0, 2]])
A C
a -0.217679 1.481278
b -0.361865 0.573761
c -0.235634 -1.689625
d 0.016905 0.244509
e 2.672172 0.845930
f -0.963336 -3.205040
def f(df):
return [0, 2]
print (df1.iloc[:, f])
A C
a -0.217679 1.481278
b -0.361865 0.573761
c -0.235634 -1.689625
d 0.016905 0.244509
e 2.672172 0.845930
f -0.963336 -3.205040