使用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 (如何根据来自另一个数据帧的值将值分配给数据帧中的新列)