Python Pandas从另一个观察中估算字符串值

时间:2015-04-27 14:35:36

标签: 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

顺便说一句,如何在Stackoverflow问题中粘贴i-Python笔记本单元格/输出,以便所有人都能直接在此页面上看到输出?

1 个答案:

答案 0 :(得分:1)

你可以通过动物分组#39;列,然后在'动物'上调用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