使用熊猫从数据框中提取的列中删除小数

时间:2019-05-17 17:32:02

标签: python pandas

我在Excel中有一个数据集。我使用read_excel将数据读入数据帧“ df”。

在此过程中,我观察到df的col1仅提供只有4位数字的小数位数。

所以,我在这里有两个问题:

  1. 当数据源中没有小数位时为什么返回小数位

  2. 如何删除结果列中的小数点

我尝试过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”

1 个答案:

答案 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)