簡體   English   中英

用另一列中的值填充列中的 nan 值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM