我有一个pandas框架(my_df
),看起来像这样:
| 指数|事件编号|记录编号|对话码|天气|
| --|--|--|--|--|
| 99378 | 11 ||||
| 99379 | 11 | 11 |P1|明确|
| 99380 | 11 ||||
| 99381 | 4 | 4 |P2|雨|
| 99382 | 37 | 37 |Q4|风|
| 99383 | 39 | 39 |Q5|雪|
| 99384 | 4 ||||
我需要在列recording_num
、session_code
和weather
中填充空值,以获得最终结果:
| 指数|事件编号|记录编号|对话码|天气|
| --|--|--|--|--|
| 99378 | 11 | 11 |P1|明确|
| 99379 | 11 | 11 |P1|明确|
| 99380 | 11 | 11 |P1|明确|
| 99381 | 4 | 4 |P2|雨|
| 99382 | 37 | 37 |Q4|风|
| 99383 | 39 | 39 |Q5|雪|
| 99384 | 4 | 4 |P2|雨|
构造my_df
框架的代码:
import numpy as np
import pandas as pd
data = {
'index': np.arange(99378, 99385),
'event_num': [11, 11, 11, 4, 37, 39, 4],
'recording_num': [np.nan, 11, np.nan, 4, 37, 39, np.nan],
'session_code': [np.nan, 'P1', np.nan, 'P2', 'Q4', 'Q5', np.nan],
'weather': [np.nan, 'clear', np.nan, 'rain', 'wind', 'snow', np.nan]
}
my_df = pd.DataFrame(data)
我试过my_df.ffill(axis = 0)
,但它不工作,因为ffill采取了前一个观察,这对最后一行不起作用。
1条答案
按热度按时间krcsximq1#
使用
groupby
和fillna
: