Python Pandas从另一个观察中插补字符串值



我有以下代码,所以从data_current我需要data_needed.我想我必须使用groupby,smth。喜欢:

data_needed=data_current['Code'].fillna(data_current.groupby('animal')['Code'])

但它并没有真正起作用...

import pandas as pd
import numpy as np
data_current=pd.DataFrame({'animal':['rabbit','badger', 'hamster','badger'],'Code':['I-1','I-2','I-3',np.nan]})
data_current
data_needed=pd.DataFrame({'animal':['rabbit','badger', 'hamster','badger'],'Code':['I-1','I-2','I-3','I-2']})
data_needed

顺便问一下,如何将i-Python笔记本单元格/输出粘贴到Stackoverflow问题中,以便每个人都可以直接在此页面上看到输出?

您可以

按"动物"列分组,然后在"动物"列上调用transform 只需调用fillna并传递参数method='ffill',这将填充任何NaN值:

In [38]:
data_current['code'] = data_current.groupby('animal')['code'].transform(lambda x: x.fillna(method='ffill'))
data_current
Out[38]:
    animal code
0   rabbit  I-1
1   badger  I-2
2  hamster  I-3
3   badger  I-2

最新更新