大熊猫 0.24+的 解决方案,用于转换缺少值的数字:
df = pd.Dataframe({'column name':[7500000.0,7500000.0, np.nan]})print (df['column name'])0 7500000.01 7500000.02 NaNName: column name, dtype: float64df['column name'] = df['column name'].astype(np.int64)ValueError:无法将非限定值(NA或inf)转换为整数
#http://pandas.pydata.org/pandas-docs/stable/user_guide/integer_na.htmldf['column name'] = df['column name'].astype('Int64')print (df['column name'])0 75000001 75000002 NaNName: column name, dtype: Int64我认为您需要转换为
numpy.int64:
df['column name'].astype(np.int64)
样品:
df = pd.Dataframe({'column name':[7500000.0,7500000.0]})print (df['column name'])0 7500000.01 7500000.0Name: column name, dtype: float64df['column name'] = df['column name'].astype(np.int64)#same as#df['column name'] = df['column name'].astype(pd.np.int64)print (df['column name'])0 75000001 7500000Name: column name, dtype: int64如果某些
NaNS
IN列需要他们取代一些
int(例如
0)通过
fillna,因为
type的
NaN是
float:
df = pd.Dataframe({'column name':[7500000.0,np.nan]})df['column name'] = df['column name'].fillna(0).astype(np.int64)print (df['column name'])0 75000001 0Name: column name, dtype: int64同时检查文档-缺少数据投射规则
编辑:
用
NaNs转换值是错误的:
df = pd.Dataframe({'column name':[7500000.0,np.nan]})df['column name'] = df['column name'].values.astype(np.int64)print (df['column name'])0 75000001 -9223372036854775808Name: column name, dtype: int64


