我正在尝试将第0列到第4列和第6列从当前的float类型转换为int。
我试过了:
df[0:4,6].astype(int)
但当然这不起作用......
答案 0 :(得分:11)
考虑image(t(d)[, nrow(d):1])
df
使用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
答案 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
。