回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有时间序列数据,其中各列之间的相关性很强,并且缺少观测值。因此,我用现有的观察结果来填补空白。代码是有效的,但我以一种笨拙的方式在每个单元格中循环。有人能做这种肾盂造影吗?工作代码如下:</p>
<pre><code>import numpy as np
import pandas as pd
df = pd.DataFrame()
df['A'] = [1,2,3,4,5,np.nan,7,8,9]
df['B'] = [7,9,np.nan,13,15,17,19,21,23]
df['C'] = [-5,0,5,10,np.nan,20,25,30,35]
print(df)
colstd = df.std(axis=0)
rowstd = df.std(axis=1)
colavg = df.mean(axis=0)
rowavg = df.mean(axis=1)
for idx , row in df.iterrows():
for col in df.columns:
if pd.isna(df.loc[idx][col]):
df.loc[idx][col] = colavg[col] + colstd[col] * np.nanmean((row - colavg)/colstd)
print(df)
</code></pre>