Python 在数据帧中插入多个列
我有一个包含多列的数据框Python 在数据帧中插入多个列,python,pandas,dataframe,interpolation,linear-interpolation,Python,Pandas,Dataframe,Interpolation,Linear Interpolation,我有一个包含多列的数据框 df = pd.DataFrame({ 'Date': [1930, 1931, 1932, 1933,1934], 'File1': [np.nan, 72, 58, 280, 958], 'File2': [22, np.nan, np.nan, np.nan, 13], 'File3': [np.nan, np.nan, np.nan, 18, 137], 'File4': [np.nan, 552, 1377, 280, np.nan], 'File5': [4
df = pd.DataFrame({
'Date': [1930, 1931, 1932, 1933,1934],
'File1': [np.nan, 72, 58, 280, 958],
'File2': [22, np.nan, np.nan, np.nan, 13],
'File3': [np.nan, np.nan, np.nan, 18, 137],
'File4': [np.nan, 552, 1377, 280, np.nan],
'File5': [45, 1252, np.nan, 1841, np.nan],
})
我想在整个数据帧上执行插值(例如使用FillMean)。但是,这些文件有不同的开始和结束日期。所以我需要说在文件的第一个值和最后一个值之间插值(使用FillMean)(它不应该在开始日期(文件中的第一个值)之前或结束日期(文件中的最后一个值)之后插值)
例如:
- 文件1不应进行插值,因为不存在缺失 值在开始日期之后
- 文件2应该有插值,因为开始日期和结束日期之间有空白值
等等
Date File1 File2 File3 File4 File5
0 1930 NaN 22.00 NaN 280.0 45.0
1 1931 72.0 19.75 NaN 552.0 1252.0
2 1932 58.0 17.50 NaN 1377.0 1546.5
3 1933 280.0 15.25 18.0 280.0 1841.0
4 1934 958.0 13.00 137.0 NaN NaN
与参数limit\u are='inside'一起使用:
df = df.interpolate(limit_are='inside').mask(df.bfill().isna())
print (df)
Date File1 File2 File3 File4 File5
0 1930 NaN 22.00 NaN NaN 45.0
1 1931 72.0 19.75 NaN 552.0 1252.0
2 1932 58.0 17.50 NaN 1377.0 1546.5
3 1933 280.0 15.25 18.0 280.0 1841.0
4 1934 958.0 13.00 137.0 NaN NaN
与参数limit\u are='inside'一起使用:
df = df.interpolate(limit_are='inside').mask(df.bfill().isna())
print (df)
Date File1 File2 File3 File4 File5
0 1930 NaN 22.00 NaN NaN 45.0
1 1931 72.0 19.75 NaN 552.0 1252.0
2 1932 58.0 17.50 NaN 1377.0 1546.5
3 1933 280.0 15.25 18.0 280.0 1841.0
4 1934 958.0 13.00 137.0 NaN NaN
乍一看,这似乎是可行的,但当我现在检查只是为了确认它似乎是插值工作的开始阶段(它开始插值在正确的时间)但是对于结束,它超出了结束日期。例如,文件4和5应该在1933@Tamarie-能否为验证所有列添加预期输出数据框?在question@Tamarie-谢谢,似乎(limit_'are='inside'
将值添加到末尾,因此将替换值添加到lastNaN
s这乍一看似乎有效,但当我现在检查以确认插值似乎在开始阶段有效(它在正确的时间开始插值)但是对于结束,它超出了结束日期。例如,文件4和5应该在1933@Tamarie-能否为验证所有列添加预期输出数据框?在question@Tamarie-谢谢,似乎(limit_'s='inside'
将值添加到末尾,因此将值替换为lastNaN
s中缺少的值