在数据框中的某些列上将Float转换为Int

时间:2016-11-29 00:39:56

标签: python pandas

我正在尝试将第0列到第4列和第6列从当前的float类型转换为int。

我试过了:

df[0:4,6].astype(int)

但当然这不起作用......

2 个答案:

答案 0 :(得分:11)

考虑image(t(d)[, nrow(d):1])

df

enter image description here

使用df = pd.DataFrame(np.random.rand(10, 10) * 10) 获取np.r_

slc

或传递类型字典,其中键为列名

slc = np.r_[0:4, 6]
df[slc] = df[slc].astype(int)
df

enter image description here

答案 1 :(得分:0)

我收到一个错误,因为我的某些列值是 NaN,显然无法转换为 int。因此,更好的方法是在转换 NaN 之前处理 datatype 并避免 ValueError: Cannot convert non-finite values (NA or inf) to integer

df['col_name'] = df['col_name'].fillna(0).astype(int)

这用 NaN 填充 0,然后转换为所需的 datatype,在本例中为 int