簡體   English   中英

替換熊貓另一行中的缺失值

[英]Replace missing value from another row in pandas

我有2列的Pandas DataFrame。

在此處輸入圖片說明

我用NaN代替了'',以便用fillna等來更快地處理:

themes = themes.apply(lambda x: x.str.strip()).replace('', np.nan)

如何用其他行中的匹配值替換NaN?

您需要groupbyffillbfill

themes.groupby('code').apply(lambda x : x.ffill().bfill())

一種方法是在刪除空值后創建序列。

然后將pd.Series.fillnapd.Series.map pd.Series.fillna使用:

df = pd.DataFrame({'code': [1, 2, 3, 1, 2, 4],
                   'name': ['A', np.nan, 'C', np.nan, 'B', 'D']})

s = df.set_index('code')['name'].dropna()
df['name'] = df['name'].fillna(df['code'].map(s))

print(df)

   code name
0     1    A
1     2    B
2     3    C
3     1    A
4     2    B
5     4    D

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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