类似于这个问题Pandas interpolate within a groupby,但是这个问题的答案是对所有列执行interpolate()。如果我只想将interpolate()限制在一列,该如何做?
输入
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
预期输出
filename val1 val2
t
1 file1.csv 5 10
2 file1.csv NaN 15
3 file1.csv 15 20
6 file2.csv NaN NaN
7 file2.csv 10 20
8 file2.csv 12 15
此尝试仅返回val2列,而不返回其余列。
df = df.groupby('filename').apply(lambda group: group['val2'].interpolate(method='index'))
1条答案
按热度按时间fcg9iug31#
直接方法:
退货: