Python 如何将整数型数组(带有一些NaN)转换为字符串型数组

Python 如何将整数型数组(带有一些NaN)转换为字符串型数组,python,python-3.x,pandas,numpy,Python,Python 3.x,Pandas,Numpy,我有一个数组x,其中一个值是NaN x=[1,2,NaN,3,5] 除了NaN之外,所有元素都是整数。 此数组类型被视为float64而不是int 我想将类型从浮动转换为字符串 我尝试了astype(str)。但这会产生小数点,比如x=[1.0,2.0,NaN,3.0,5.0] 我尝试了astype(int).astype(str)。但是,在这种情况下,由于NaN元素,它不起作用 那么,我如何才能将包含一些元素的整数数组转换为不带小数点的字符串类型呢 谢谢你的阅读 将numpy导入为np 作为p

我有一个数组
x
,其中一个值是
NaN

x=[1,2,NaN,3,5]

除了
NaN
之外,所有元素都是整数。 此数组类型被视为float64而不是int

我想将类型从浮动转换为字符串

我尝试了
astype(str)
。但这会产生小数点,比如
x=[1.0,2.0,NaN,3.0,5.0]

我尝试了
astype(int).astype(str)
。但是,在这种情况下,由于NaN元素,它不起作用

那么,我如何才能将包含一些元素的整数数组转换为不带小数点的字符串类型呢

谢谢你的阅读

将numpy导入为np
作为pd进口熊猫
df=pd.DataFrame({'x':[1,2,np.nan,3,5]})
#df.dtypes
df['x']=df['x'].aType(str)
#在这种情况下,它使用小数点。
df['x']=df['x'].astype(int).astype(str)
#由于NaN元素,它无法工作。

这可能会有帮助。它将用空字符串替换所有NAN。

您可以过滤掉NAN,而不是替换为“”


来源:

不用担心nan,你可以用它来确保它不会影响你的运营

df = pd.DataFrame({'x' : [1,2, np.nan ,3,5]})
df = df.convert_dtypes()
这使您可以在不自动更改数据类型的情况下使用NAN,并将列表中的项目保留为INT

import pandas as pd
import numpy as np
​
df = pd.DataFrame({'x' : [1,2, np.nan ,3,5]})
df.replace(np.nan,"nan",inplace=True)
df = pd.DataFrame(map(str,df['x'])
可能不是最优雅的解决方案,但可以完成任务。如果有多个列,则可能需要使用for循环

df = pd.DataFrame({'x' : [1,2, np.nan ,3,5]})
df = df.convert_dtypes()
import pandas as pd
import numpy as np
​
df = pd.DataFrame({'x' : [1,2, np.nan ,3,5]})
df.replace(np.nan,"nan",inplace=True)
df = pd.DataFrame(map(str,df['x'])