使用python中的所有值将数据帧float转换为int

Posted

技术标签:

【中文标题】使用python中的所有值将数据帧float转换为int【英文标题】:Convert dataframe float to int with all values in python 【发布时间】:2020-10-04 11:32:45 【问题描述】:

我有一个包含 6 列的数据框。我想将其中一列(第二列)从 float 转换为 int,当我这样做时,它只将一列作为 int 返回,但我想要完全相同的数据帧,唯一的区别是第二个列是 int 而不是 float。

我已经检查了这里的所有相关问题,但对我没有任何帮助!!请帮忙

【问题讨论】:

这能回答你的问题吗? Convert floats to ints in Pandas? astype 中的 pandas 函数可能在这里工作。 【参考方案1】:

您的数据框看起来像这样:

>>> 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

【讨论】:

虽然这段代码可以回答这个问题,但提供更多关于代码的作用的细节通常会有所帮助。 你是对的。我已经更新了答案以包含更详细的解释。 更好的答案。谢谢! +1【参考方案2】:

您可以重新分配给新列或将相同的列值替换为

df["col1"] = df["col1"].astype('int32')

【讨论】:

【参考方案3】:

你可以这样做!

>>> 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

您可以参考这个link了解更多详情!

【讨论】:

您好,您能否在回答中包含链接的内容? 这里是 - pandas.pydata.org/pandas-docs/stable/reference/api/… 不,在您的答案中包含链接的内容(无论网站上说什么)。这在网站更改或链接失效时很有帮助。

以上是关于使用python中的所有值将数据帧float转换为int的主要内容,如果未能解决你的问题,请参考以下文章

如何解压缩数据框列中存在的 json 的键,值将转换为键作为列,而使用 python 将其值转换为列?

当我将此数据帧转换为字典时,为啥索引设置不正确?

熊猫,我怎样才能避免使用 iterrow (如何根据来自另一个数据帧的值将值分配给数据帧中的新列)

根据列中的共同值将大数据框拆分为数据框列表

在python中有啥比较高效方法可以转换list中的str类型为float?

根据 NaN 值将数据帧拆分为多个数据帧