在同一行中最少创建其他列,以创建一个新列

时间:2019-02-15 15:28:49

标签: python-3.x pandas

我有以下DataFrame

输入:

A    B    C    D    E
2    3    4    5    6
1    1    2    3    2 
2    3    4    5    6

我想添加一个新列,该行的最小值为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

我尝试使用

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

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

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

3 个答案:

答案 0 :(得分:4)

axis = 1添加到您的min

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

答案 1 :(得分:3)

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

在线解决方案所产生的副本不会更改原始文件

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

相同的答案却不同

将列添加到现有数据框

{{1}}

答案 2 :(得分:2)

您必须定义一个沿其应用min函数的轴,该轴将为1(列)。

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