创建一个新列,同一行上的其他列最少

Ter*_*rry 5 python-3.x pandas

我有以下数据帧

输入:

A    B    C    D    E
2    3    4    5    6
1    1    2    3    2 
2    3    4    5    6
Run Code Online (Sandbox Code Playgroud)

我想添加一个新列,该列具有该行的最小值 A、B 和 C

输出:

A    B    C    D    E    Goal
2    3    4    5    6    2
1    1    2    3    2    1 
2    3    4    5    6    2
Run Code Online (Sandbox Code Playgroud)

我试过用

df = df[['A','B','C]].min() 
Run Code Online (Sandbox Code Playgroud)

但我收到有关哈希列表的错误,而且我认为这将是整列的最小值,我只想要那些特定列的行的最小值。

我怎样才能最好地做到这一点?

piR*_*red 5

使用min连同列axis=1

生成不改变原始副本的内联解决方案

df.assign(Goal=lambda d: d[['A', 'B', 'C']].min(1))

   A  B  C  D  E  Goal
0  2  3  4  5  6     2
1  1  1  2  3  2     1
2  2  3  4  5  6     2
Run Code Online (Sandbox Code Playgroud)

同一个答案不同

将列添加到现有数据框

new = df[['A', 'B', 'C']].min(axis=1)

df['Goal'] = new

df

   A  B  C  D  E  Goal
0  2  3  4  5  6     2
1  1  1  2  3  2     1
2  2  3  4  5  6     2
Run Code Online (Sandbox Code Playgroud)


Ter*_*rry 5

添加axis = 1到您的min

df['Goal'] = df[['A','B','C']].min(axis = 1) 
Run Code Online (Sandbox Code Playgroud)