![](/img/trans.png)
[英]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.