我想将csv文件导入到pandas数据框。有一列带有ID的ID,其中仅包含数字,但并非每一行都有ID。

   ID      xyz
0  12345     4.56
1           45.60
2  54231   987.00

我想将此列读为String,但是即使我用
df=pd.read_csv(filename,dtype={'ID': str})
我懂了
   ID         xyz
0  '12345.0'    4.56
1   NaN        45.60
2  '54231.0'  987.00

是否有一种简单的方法来获取ID,使其成为不带小数的字符串(如'12345'),而无需在导入表后编辑字符串?

最佳答案

一个解决方案可能是这样,但是在导入df之后:

df = pd.read_csv(filename)
df['ID'] = df['ID'].astype(int).astype(str)

或由于NaN具有:
df['ID'] = df['ID'].apply(lambda x: x if pd.isnull(x) else str(int(x)))

关于python - Pandas Dataframe将列解释为浮点而不是字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53280650/

10-10 18:21
查看更多