我有一个 6 列的数据框。我想将其中一列(第二列(从浮点数转换为 int,当我这样做时,它只将一列作为 int 返回,但我想要完全相同的数据帧,唯一的区别是第二列是 int 而不是浮点数。
我已经检查了这里的所有相关问题,没有任何效果!! 请帮忙
你可以做这样的事情!
>>> df = pd.DataFrame({'num_legs': [2, 4, 8, 0],
'num_wings': [2, 0, 0, 0],
'num_specimen_seen': [10, 2, 1, 8]},
index=['falcon', 'dog', 'spider', 'fish'])
>>> df
num_legs num_wings num_specimen_seen
falcon 2 2 10
dog 4 0 2
spider 8 0 1
fish 0 0 8
>>> df['test'] = df['num_wings'].astype('float')
>>> df
num_legs num_wings num_specimen_seen test
falcon 2 2 10 2.0
dog 4 0 2 0.0
spider 8 0 1 0.0
fish 0 0 8 0.0
您可以参考此链接了解更多详情!
您似乎有一个看起来像这样的数据帧:
>>> print(df)
c1 c2 c3 c4 c5 c6
0 a 1.0 5 d 20 z
1 b 2.0 6 e 40 y
2 c 3.0 7 f 60 x
我相信您可能正在使用 DataFrame.astype 将浮点数列转换为整数列。具体来说,你似乎已经到了这个地步:
>>> df['c2'].astype(int)
0 1
1 2
2 3
现在,您需要做的就是通过调用以下命令替换列:
>>> df['c2'] = df['c2'].astype(int)
>>> print(df)
c1 c2 c3 c4 c5 c6
0 a 1 5 d 20 z
1 b 2 6 e 40 y
2 c 3 7 f 60 x
如果您想创建一个新的整数列,您可以改为这样做:
>>> df['new_col'] = df['c2'].astype(int)
>>> print(df)
c1 c2 c3 c4 c5 c6 new_col
0 a 1.0 5 d 20 z 1
1 b 2.0 6 e 40 y 2
2 c 3.0 7 f 60 x 3
您可以重新分配给新列或将相同的列值替换为
df["col1"] = df["col1"].astype('int32')