Sea*_*ala 5 python dataframe pandas
这听起来像是一个很奇怪的问题,但是当我使用pandas.DataFrame.shift()带有fill_value关键字参数的函数时,我总是收到一个TypeError: shift() got an unexpected keyword argument 'fill_value'。
甚至文档中的一个简单示例也给了我这个错误:
df = pd.DataFrame({'c1': [1, 2, 3],
'c2': [4, 5, 6],
'c3': [7, 8, 9]})
df.shift(periods=1, fill_value=0)
Run Code Online (Sandbox Code Playgroud)
通常会预期
c1 c2 c3
0 0 0 0
1 1 4 7
2 2 5 8
3 3 6 9
Run Code Online (Sandbox Code Playgroud)
但是会引发错误。有人会知道是什么问题吗?我在其他地方搜索过,但似乎没有其他人遇到此问题...
问题是0.24+在DataFrame.shift.
fill_value : 对象,可选
用于新引入的缺失值的标量值。默认值取决于 self 的 dtype。对于数值数据,使用 np.nan。对于日期时间、时间增量或周期数据等,使用 NaT。对于扩展数据类型,使用 self.dtype.na_value。
在0.24.0版本中更改。
然后使用DataFrame.fillna:
df = df.shift(periods=1).fillna(0)
Run Code Online (Sandbox Code Playgroud)
或者DataFrame.fillna,DataFrame.iloc如果可能的话,通过数据中的另一个缺失值按位置指定第一行,必要时只替换它:
df = df.shift(periods=1)
df.iloc[0] = df.iloc[0].fillna(0)
print (df)
c1 c2 c3
0 0.0 0.0 0.0
1 1.0 4.0 7.0
2 2.0 5.0 8.0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1541 次 |
| 最近记录: |