我有一个包含以下信息的数据框:
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