python - 将包含分组数据的 CSV 导入到 Pandas 数据框中

标签 python python-3.x pandas dataframe

当我用 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/

相关文章:

python - XLDateAmbiguous 解决方法

python - FormEncode、pylons 和 mako 示例

python - 为字符串中的所有数字添加下标格式

python-3.x - 将 24 位音频转换为 16 位音频的最佳库或方法是什么?

python - “numpy.ndarray”对象没有属性 'columns'

python - 尝试在标签中显示图像时 setPixmap 崩溃

python - 从函数调用的输出中删除 None

python - 可以评论 pylint 注释

python - 迭代 EOD .csv 以在每个文件中创建历史运行高点、低点

python - Pandas 按组使用第一个有效索引删除 nan