当我用 Pandas 导入数据文件时,我得到以下数据框:
product feature_1 feature_2
0 a 11 12
1 NaN 13 14
2 NaN 15 16
3 NaN 17 18
4 NaN 19 20
5 b 21 22
6 NaN 23 24
7 NaN 25 26
8 c 27 28
9 NaN 29 30
10 NaN 31 32
我需要做的是将 NaN 替换为它们上面的下一个非 NaN 元素,这样我就得到以下数据帧:
product feature_1 feature_2
0 a 11 12
1 a 13 14
2 a 15 16
3 a 17 18
4 a 19 20
5 b 21 22
6 b 23 24
7 b 25 26
8 c 27 28
9 c 29 30
10 c 31 32
我做了什么(请参阅gist以获取代码和数据文件):
- 将我的数据导入到字典列表中
- 迭代列表并进行修改
- 将列表导入数据框中
如何在不事先进行列表预处理的情况下直接在 Pandas 中实现此操作?
最佳答案
您可以使用pd.Series.ffill
避免字典转换和手动迭代:
df['product'].ffill(inplace=True)
print(df)
product feature_1 feature_2
0 a 11 12
1 a 13 14
2 a 15 16
3 a 17 18
4 a 19 20
5 b 21 22
6 b 23 24
7 b 25 26
8 c 27 28
9 c 29 30
10 c 31 32
关于python - 将包含分组数据的 CSV 导入到 Pandas 数据框中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51763941/