小编典典

熊猫在groupby内插

python

我有一个包含以下信息的数据框:

    filename    val1    val2
t                   
1   file1.csv   5       10
2   file1.csv   NaN     NaN
3   file1.csv   15      20
6   file2.csv   NaN     NaN
7   file2.csv   10      20
8   file2.csv   12      15

我想根据索引插入数据帧中的值, 但仅在每个文件组中

插值,我通常会做

df = df.interpolate(method="index")

和我一起做

grouped = df.groupby("filename")

我希望插入的数据帧看起来像这样:

    filename    val1    val2
t                   
1   file1.csv   5       10
2   file1.csv   10      15
3   file1.csv   15      20
6   file2.csv   NaN     NaN
7   file2.csv   10      20
8   file2.csv   12      15

NaN仍然存在于t = 6的位置,因为它们是file2组中的第一项。

我怀疑我需要使用“应用”,但是还无法确切地知道如何…

grouped.apply(interp1d)
...
TypeError: __init__() takes at least 3 arguments (2 given)

任何帮助,将不胜感激。


阅读 223

收藏
2020-12-20

共1个答案

小编典典

>>> df.groupby('filename').apply(lambda group: group.interpolate(method='index'))
    filename  val1  val2
t                       
1  file1.csv     5    10
2  file1.csv    10    15
3  file1.csv    15    20
6  file2.csv   NaN   NaN
7  file2.csv    10    20
8  file2.csv    12    15
2020-12-20