如何在Pandas DataFrame中按行计算指定列子集的最大值?
计算Pandas DataFrame每行指定列子集的最大值
核心实现方法
直接提取目标列子集,调用max()方法并指定按行计算,结果赋值给新列即可。
示例代码
- 构造示例DataFrame:
import pandas as pd import numpy as np # 生成包含6列5行的示例数据 df = pd.DataFrame({ 'A': np.random.randint(1, 10, 5), 'B': np.random.randint(1, 10, 5), 'C': np.random.randint(1, 10, 5), 'D': np.random.randint(1, 10, 5), 'E': np.random.randint(1, 10, 5), 'F': np.random.randint(1, 10, 5) })
- 计算指定列的每行最大值并生成新列:
# 定义需要计算最大值的列子集 target_columns = ['C', 'D', 'E'] # 按行计算最大值,赋值给新列G df['G'] = df[target_columns].max(axis=1)
关键参数说明
axis=1:指定计算方向为行(默认axis=0是按列计算最大值)skipna=True(默认):计算时自动跳过NaN值;如果需要将NaN纳入计算(即只要该行有NaN就返回NaN),可以设置skipna=False:
df['G'] = df[target_columns].max(axis=1, skipna=False)
内容的提问来源于stack exchange,提问作者John David Deatherage
相关产品推荐
相关产品推荐

