在read_excel()和to_excel()之间符合数据帧dtypes

时间:2014-10-02 18:16:09

标签: python excel pandas dataframe

我正在从excel文件(特别是xlsx)中读取数据框,该文件包含有关供应商的行和列,包括zip_code和tax_id列。当数字被读入IN然后我转换列astype(unicode)时,tax_id 123456789变为123456789.0。

我不想转换为int然后mod / truncate(因为,在zip_code和理论上tax_id的情况下,'07443'将转换为7443,这是不好的)。我只想剪切'.0'并让to_excel()将整个列视为字符串(unicodes,更具体地说)。

有时read_excel()正确地将数字标识为字符串(07443实际上是一个很好的例子)。但是在tax_id的情况下,它显然是以某种形式出现的(尽管直到我输入它(unicode),'。0'才会出现。

我尝试过的一件事是df.astype(unicode).replace(".0",""),但这似乎并没有完成。生成的df仍显示123456789.0。

我不知道如何用代码说明这一点,因为你需要一个我无法附加的Excel文件。如果有必要,我愿意就如何澄清我的问题提出建议。

谢谢!

1 个答案:

答案 0 :(得分:0)

嗯,有一件事似乎有效(我想这会说明大熊猫的真棒):

df['tax_id'].replace(".0$","",regex=True)