4
我有以下的数据帧,我想转换数值列“B”为整转换浮到int和离开零点
a b c
0 1 NaN 3
1 5 7200.0 20
2 5 580.0 20
下面的代码抛出异常 “ValueError异常:无法转换NA为整型“
df['b'] = df['b'].astype(int)
我该如何将浮点数转换为int并将空值保留原样?
我有以下的数据帧,我想转换数值列“B”为整转换浮到int和离开零点
a b c
0 1 NaN 3
1 5 7200.0 20
2 5 580.0 20
下面的代码抛出异常 “ValueError异常:无法转换NA为整型“
df['b'] = df['b'].astype(int)
我该如何将浮点数转换为int并将空值保留原样?
np.NaN
是浮点唯一的东西,所以它必须被删除才能创建一个整数pd.Series。 Jeon的建议工作很棒如果0在df['b']
中不是有效值。例如:
import pandas as pd
import numpy as np
df = pd.DataFrame({'a': [1, 5, 5], 'b': [np.NaN, 7200.0, 580.0], 'c': [3, 20, 20]})
print(df, '\n\n')
df['b'] = np.nan_to_num(df['b']).astype(int)
print(df)
是否有有效0的,那么你可以先用一些独特的价值(例如,-999999999)全部更换,该转换上面,然后用0替换这些独特的价值观。
无论哪种方式,你必须记住,你有0的地方有一次NaNs。在进行各种数值分析时(例如,平均值等),您需要小心过滤掉这些数据。
请问为什么?看起来丑陋?整数数组不能有'NaN' – Jeon
我得到你,所以我应该首先将NaN替换为0,然后将列转换为int? – billboard
如果你真的想,0,-1或你可以区分的东西 – Jeon