pandas获得两列或更多列的行最小值

如何作为熊猫数据框方程的一部分引用两个数据框的最小值?我尝试使用min()无法正常工作的python函数。很抱歉,如果在某处有充分的文档证明,但无法找到有效的解决方案来解决此问题。我正在寻找与此类似的东西:

data['eff'] = pd.DataFrame([data['flow_h'], data['flow_c']]).min() *Cp* (data[' Thi'] - data[' Tci'])

我也尝试使用pandasmin()函数,该函数也不起作用。

min_flow = pd.DataFrame([data['flow_h'], data['flow_c']]).min()

InvalidIndexError: Reindexing only valid with uniquely valued Index objects

这个错误让我感到困惑。数据列只是数字和名称,我不确定索引在哪里起作用。

import pandas as pd

import numpy as np

np.random.seed(365)

rows = 10

flow = {'flow_c': [np.random.randint(100) for _ in range(rows)],

'flow_d': [np.random.randint(100) for _ in range(rows)],

'flow_h': [np.random.randint(100) for _ in range(rows)]}

data = pd.DataFrame(flow)

# display(data)

flow_c flow_d flow_h

0 82 36 43

1 52 48 12

2 33 28 77

3 91 99 11

4 44 95 27

5 5 94 64

6 98 3 88

7 73 39 92

8 26 39 62

9 56 74 50

回答:

如果要获取mininum两列或更多列的行,请使用pandas.DataFrame.min并指定axis=1

data['min_c_h'] = data[['flow_h','flow_c']].min(axis=1)

# display(data)

flow_c flow_d flow_h min_c_h

0 82 36 43 43

1 52 48 12 12

2 33 28 77 33

3 91 99 11 11

4 44 95 27 27

5 5 94 64 5

6 98 3 88 88

7 73 39 92 73

8 26 39 62 26

9 56 74 50 50

以上是 pandas获得两列或更多列的行最小值 的全部内容, 来源链接: utcz.com/qa/434127.html

回到顶部