满足条件时根据其他列替换列数据框中的值

时间:2018-10-18 09:27:34

标签: python pandas

我是熊猫新手。我尝试查看档案,但找不到或可能丢失。 数据:

d = {'A' : pd.Series([1., 2., 3., 4., 6.], index=['a', 'b', 'c', 'd','e']),'B' : pd.Series([3., 2., 1., 4., 7., 5.], index=['a', 'b', 'c', 'd', 'e', 'f',])}
df=pd.DataFrame(d)
df

我想要的是尝试比较“ A”与“ B”中的值。如果“ B”中的值大于“ A”中的值,我想将“ B”中的值替换为“ A”值。

“ B”的预期结果变为1(更改),2、1、4、6(更改),5

有人愿意告诉我怎么做吗? 非常感谢,

1 个答案:

答案 0 :(得分:0)

您可以通过计算逐行最小值来实现:

conda create -n your_env_name python=3.7 anaconda

因此,您可以将>>> df[['A', 'B']].min(axis=1) a 1.0 b 2.0 c 1.0 d 4.0 e 6.0 f 5.0 dtype: float64 分配回Series列:

B

然后数据框具有值:

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

如果>>> df A B a 1.0 1.0 b 2.0 2.0 c 3.0 1.0 d 4.0 4.0 e 6.0 6.0 f NaN 5.0 的值为B,则在计算最小值时将“忽略”该值,因此,我们将在该行的NaN列中分配该值。