指定列范围作为参数

Specifying a range of columns as parameter

我想提取一个有 100 行的 table 的最大值:可以很差的东西是这样实现的:

maxA = max(data['a1size'].max(), data['a2size'].max(), data['a3size'].max()... and continuing like this until a100size.

当然,这个解决方案一点也不理想。

是否有比使用 for 循环更好更优雅的方法?

我正在寻找某种 .. 运算符。类似于:

maxA = max(data['a1size'].max() .. data['a100size'].max())

loc 运算符允许您按列名使用切片:

maxA = data.loc[:, 'a1size':'a100size'].values.max()

请注意,与核心 Python 切片相比,最后一列包含在此处。第一个 : 指定您想要所有行。

如果您要获取最大值的列是连续的,则此方法有效。否则,您可以使用列名列表来索引数据框。要构建这样的列表,您可以使用列表理解:

a_size_cols = [f'a{i}size' for i in range(1, 101)]

maxA = data[a_size_cols].values.max()