微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python-用其他系列中的最小值替换数据框中的np.nan

我敢肯定这是一个简单的方法,但我无法正确获取df.loc的语法.

import pandas as pd
import numpy as np

d = { 'data' : [4, 2, 7, np.nan, 7, 6, 5, np.nan, 6, 3, np.nan, 2], 
 'a' : [4, 2, 7, 9, 7, 6, 5, 4, 6, 3, np.nan, 2], 
 'b' : [4, 2, 7, 11, 7, 6, 5, 2, 6, 3, 3, 2]}

df2 = pd.DataFrame(d)

df2.loc[df2.data == np.nan], min(['a', 'b'])

print df2

我想用标签“ a”和“ b”中的最小值替换“数据”中的所有np.nan.请注意,有时这些值之一也会丢失(np.nan).

结果应为:

     a   b  data
0    4   4     4
1    2   2     2
2    7   7     7
3    9  11     9
4    7   7     7
5    6   6     6
6    5   5     5
7    4   2     2
8    6   6     6
9    3   3     3
10 NaN   3     3
11   2   2     2

解决方法:

您可以fillna()来获取min()的结果:

df2['data'].fillna(df2[['a', 'b']].min(axis=1), inplace=True)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐