我有数据框:
a b c d
0 nan Y nan nan
1 1.27838e+06 N 3 96
2 nan N 2 nan
3 284633 Y nan 44
Run Code Online (Sandbox Code Playgroud)
我尝试将非零数据更改为整数类型以避免指数数据(1.27838e+06):
f=lambda x : int(x)
df['a']=np.where(df['a']==None,np.nan,df['a'].apply(f))
Run Code Online (Sandbox Code Playgroud)
但是我也得到了错误,我想改变非空值的 dtype,任何人都可以指出我的错误吗?谢谢
Pandas 不能为 integers 存储 NaN 值。严格来说,您可以有一个包含混合数据类型的列,但这在计算上可能效率低下。所以如果你坚持,你可以做到
df['a'] = df['a'].astype('O')
df.loc[df['a'].notnull(), 'a'] = df.loc[df['a'].notnull(), 'a'].astype(int)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14654 次 |
| 最近记录: |