将数据帧浮点数转换为包含 python 中所有值的 int



我有一个 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')

最新更新