Chr*_*isB 16 python nan missing-data pandas data-cleaning
我正在处理像这样的pandas DataFrames:
id x
0 1 10
1 1 20
2 2 100
3 2 200
4 1 NaN
5 2 NaN
6 1 300
7 1 NaN
Run Code Online (Sandbox Code Playgroud)
我想用一个具有相同'id'值的行替换每个NAN'x'和之前的非NAN'x':
id x
0 1 10
1 1 20
2 2 100
3 2 200
4 1 20
5 2 200
6 1 300
7 1 300
Run Code Online (Sandbox Code Playgroud)
有没有一些光滑的方法来做到这一点,而无需手动循环行?
unu*_*tbu 21
您可以对每个组执行groupby/forward-fill操作:
import numpy as np
import pandas as pd
df = pd.DataFrame({'id': [1,1,2,2,1,2,1,1], 'x':[10,20,100,200,np.nan,np.nan,300,np.nan]})
df['x'] = df.groupby(['id'])['x'].ffill()
print(df)
Run Code Online (Sandbox Code Playgroud)
产量
id x
0 1 10.0
1 1 20.0
2 2 100.0
3 2 200.0
4 1 20.0
5 2 200.0
6 1 300.0
7 1 300.0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9396 次 |
| 最近记录: |