我有一个包含以下信息的数据框:
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)
任何帮助,将不胜感激。
>>> 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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句