Python 如何覆盖NaN值?
我试图用下面的逻辑替换“BTC”符号的NaN值,但无法覆盖列“A”中的NaN值Python 如何覆盖NaN值?,python,pandas,Python,Pandas,我试图用下面的逻辑替换“BTC”符号的NaN值,但无法覆盖列“A”中的NaN值 df['A'].loc['BTC'] = 1 - df['A'].groupby(level=0).sum() 我也尝试过.fillna()和其他一些东西,但都没能成功 df['A'].loc['BTC'] = df['A'].loc['BTC'].fillna(1 - df['A'].groupby(level=0).sum()) 我有以下数据帧: A
df['A'].loc['BTC'] = 1 - df['A'].groupby(level=0).sum()
我也尝试过.fillna()和其他一些东西,但都没能成功
df['A'].loc['BTC'] = df['A'].loc['BTC'].fillna(1 - df['A'].groupby(level=0).sum())
我有以下数据帧:
A
Date Symbol
1/1/2017 BTC Nan
ETH 0.45
XRP 0.3
1/2/2017 BTC Nan
ETH 0.55
XRP 0.2
使用
transform
替换为过滤方式:
详细信息:
print (df.groupby(level=0)['A'].transform('sum'))
Date Symbol
1/1/2017 BTC 0.75
ETH 0.75
XRP 0.75
1/2/2017 BTC 0.75
ETH 0.75
XRP 0.75
Name: A, dtype: float64
你能解释一下逻辑是什么吗?在np.whereuser needs
1-sum()中使用你的逻辑,我相信。因此,(2017年1月1日,BTC)
应为0.25example@jezrael,非常感谢您的解决方案。它对我非常有效。
print (df.groupby(level=0)['A'].transform('sum'))
Date Symbol
1/1/2017 BTC 0.75
ETH 0.75
XRP 0.75
1/2/2017 BTC 0.75
ETH 0.75
XRP 0.75
Name: A, dtype: float64