繁体   English   中英

当我连接两个字符串系列时,我可以强制 Python 仅以字符串格式返回吗?

[英]Can I force Python to return only in String-format when I concatenate two series of strings?

我想连接 pandas 中的两列,其中主要包含字符串值和一些缺失值。 结果应该是一个新列,该列再次包含字符串值和缺失值。 大多数情况下,它可以很好地解决这个问题:

df['newcolumn']=df['column1']+df['column2']

column1中的大多数值都是数字(解释为字符串),例如82 但是column2中的一些值是由字母和数字组成的,以E开头,例如E52E83 现在连接82E83时,我想要的结果是82E83 不幸的是,结果是8,2E+84 我猜,Python 隐含地将其作为一个带有科学记数法的数字进行了解释。

我已经尝试过不同的连接和强制字符串格式的方法,但结果总是一样的:

df['newcolumn']=(df['column1']+df['column2']).asytpe(str)

或者

df['newcolumn']=(df['column1'].str.cat(df['column2'])).asytpe(str)

似乎 Python 首先创建了一个浮点数,创建了这种不需要的格式,然后将类型更改为字符串,保持结果如8,2E+84 有没有严格保持字符串格式的解决方案?

编辑:感谢您的评论。 当我尝试用非常短的 dataframe 自己重现问题时,问题也没有发生。 最后我意识到这只是 Excel 自动将单元格解释为(错误)数字(在 CSV 输出中)的问题。 我以前没有意识到这一点,因为另一个 dataframe 来自我用于与此 dataframe 合并的 CSV 文件,该连接字符串也已被 ZC1D81AF583190DDEDBEDB484 以相同的方式“破坏” 所以合并没有正常工作,我认为 Python 中的连接是问题所在。 我曾经用 Excel 查看 dataframe 因为它真的很大。 以后我会更加小心地处理这个问题。 我很抱歉放错了问题!

在这种情况下不需要类型转换。 你可以简单地使用

df["newcolumn"] = df.apply(lambda x: f"{str(x[0])}{str(x[1])}", axis = 1)

Output: 在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM