[英]how to fill NaN values of Pandas column with values from another column
[英]Fill nan values from a column with values from another column
我正在使用时间序列数据集,我的兴趣列是月份列 (mes)、年份列 (ano)、最低价格 (min) 和模态价格 (mcom)。
从 2013 年开始的某些月份在 min 列中没有任何值,并且在这些月份中并希望填充 mcom 列中的值。
我使用以下行来查找没有最小值的月份:
dfc.loc[(dfc['ano'] == 2013) & (dfc['mes'] == 1)]
基本上,我想用“mcom”列中的值填充“min”列
dfc['ano'] == 2013 & dfc['mes'] == 1
我该怎么做?
这是数据框的头部:
data dia mes ano wday prod und proc tipo min mcom max merc date julian
6 02/01/2013 2 1 2013 quarta Peixe de agua salgada Kg RS-SC Sardinha NaN 5.28 5.28 Est 2013-01-02 12:00:00 1.416667
14 03/01/2013 3 1 2013 quinta Peixe de agua salgada Kg RS-SC Sardinha NaN 5.28 5.28 Est 2013-01-03 12:00:00 2.416667
22 04/01/2013 4 1 2013 sexta Peixe de agua salgada Kg RS-SC Sardinha NaN 5.28 5.28 Est 2013-01-04 12:00:00 3.416667
30 07/01/2013 7 1 2013 segunda Peixe de agua salgada Kg RS-SC Sardinha NaN 5.28 5.28 Est 2013-01-07 12:00:00 6.416667
38 08/01/2013 8 1 2013 nan Peixe de agua salgada Kg RS-SC Sardinha NaN 5.28 5.28 Est 2013-01-08 12:00:00 7.416667
'tipo' 变量,只有 'sardinha' 并且变量的类型是:
dfc.dtypes
data object
dia int64
mes int64
ano int64
wday object
prod object
und object
proc object
tipo object
min float64
mcom float64
max float64
merc object
date object
julian float64
dtype: object
m = (dfc['ano'] == 2013) & (dfc['mes'] == 1)
dfc.loc[m, 'min'] = dfc.loc[m, 'mcom']
# or
dfc['min'] = dfc['min'].mask(m, df['mcom'])
# or
dfc['min'] = np.where(m, df['mcom'], dfc['min'])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.