繁体   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