可以填写函数吗?或者只是方法'回填','bfill'等等?
http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.fillna.html
如果数据帧没有任何初始数据,例如,回填方法是没用的不是吗?如果数据帧结束时没有数据,则反之亦然。
这就是为什么我想使用像推断这样的正确方法
的一些原因答案 0 :(得分:1)
简答:
不,fillna
不能使用函数,只能使用方法。
简短回答:
有一个df.interpolate
函数可以让你使用不同的插值技术填充。
答案很长:
您可以参考the answer here,其中有人概述了使用scipy推断数据的方法。不幸的是,没有原生的熊猫功能来实现这一目标):
答案 1 :(得分:1)
onChange={this.handleChange}
旨在使fillna
填充,或使用其中一种方法value
值:标量,字典,系列或DataFrame
用于填充孔的值(例如0),或者用于指定每个索引(对于Series)或列(对于DataFrame)使用哪个值的值的Dict / Series / DataFrame。 (不会填写dict / Series / DataFrame中的值)。该值不能是列表。
回答
*{‘backfill’, ‘bfill’, ‘pad’, ‘ffill’, None}*
不会将函数作为fillna
参数的有效输入。但是,如果您有一个可以生成系列或数据框的函数,那么您可以将所需的输入传递给函数并将结果传递给value
示例
fillna
参数可以使用标量,词典,系列或数据框。以下是一些看起来像
考虑数据框value
df
填充标量
df = pd.DataFrame([
[1, None, 2, None],
[None, 3, None, 4],
[5, 6, None, None],
[None, None, 7, 8]
], list('ABCD'), list('WXYZ'))
print(df)
W X Y Z
A 1.0 NaN 2.0 NaN
B NaN 3.0 NaN 4.0
C 5.0 6.0 NaN NaN
D NaN NaN 7.0 8.0
填写字典
df.fillna(9)
W X Y Z
A 1.0 9.0 2.0 9.0
B 9.0 3.0 9.0 4.0
C 5.0 6.0 9.0 9.0
D 9.0 9.0 7.0 8.0
填写系列
filler = dict(W=-9, X=-10, Y=-11, Z=-12)
df.fillna(filler)
W X Y Z
A 1.0 -10.0 2.0 -12.0
B -9.0 3.0 -11.0 4.0
C 5.0 6.0 -11.0 -12.0
D -9.0 -10.0 7.0 8.0
填充数据框
filler = pd.Series(dict(W=-9, X=-10, Y=-11, Z=-12))
df.fillna(filler)
W X Y Z
A 1.0 -10.0 2.0 -12.0
B -9.0 3.0 -11.0 4.0
C 5.0 6.0 -11.0 -12.0
D -9.0 -10.0 7.0 8.0
填写索引,需要转置
filler = pd.DataFrame(-np.arange(df.size).reshape(df.shape), df.index, df.columns)
print(filler)
W X Y Z
A 0 -1 -2 -3
B -4 -5 -6 -7
C -8 -9 -10 -11
D -12 -13 -14 -15
df.fillna(filler)
W X Y Z
A 1.0 -10.0 2.0 -12.0
B -9.0 3.0 -11.0 4.0
C 5.0 6.0 -11.0 -12.0
D -9.0 -10.0 7.0 8.0
生成df.fillna(filler, axis=1)
NotImplementedError