我在Excel中有一个数据集。我使用read_excel将数据读入数据帧“ df”。
在此过程中,我观察到df的col1仅提供只有4位数字的小数位数。
所以,我在这里有两个问题:
当数据源中没有小数位时为什么返回小数位
如何删除结果列中的小数点
我尝试过astype(int)和astype(float)
假定它提供小数的原因可能是由于一些空值。因此,使用了fillna(0)
df_A = pd.read_excel("path\filename.xls")
Data = {
"A" : df_A['col1'].fillna(0)
(Also tried "A" : df_A['col1'].astype(int))
}
df_B = pd.DataFrame(Data_A)
“ ... 5124、5487、9487、3598”的预期...列值 实际结果..列值为“ 5124.0、5487.0、9487.0、3598.0”
答案 0 :(得分:1)
由于df_A是一个数据框,因此可以填充并且将列转换为int。
df_A['col1'] = df_A['col1'].fillna(0).astype(int)
由于上述代码出现错误invalid literal for int() with base 10:
,这意味着您的数据中存在一些无法转换为int的非数字值。使用pd.to_numeric将这些值强制转换为NaN,然后使用上面的代码。
df_A['col1'] = pd.to_numeric(df_A['col1'], errors = 'coerce')
df_A['col1'] = df_A['col1'].fillna(0).astype(int)