使用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的主要内容,如果未能解决你的问题,请参考以下文章