我正在尝试查看是否可以从此电话号码列中删除尾随零。
例子:
0
1 8.00735e+09
2 4.35789e+09
3 6.10644e+09
此列中的类型是一个对象,我试图将其四舍五入但出现错误。我检查了其中的几个,我知道它们的格式为“8007354384.0”,并希望用小数点去掉尾随零。
有时我收到这种格式,有时我不收到,它们将是整数。我想检查电话列是否有尾随零,然后将其删除。
我有这段代码,但我对如何检查每一行的尾随零感到困惑。
data.ix[data.phone.str.contains('.0'), 'phone']
我收到一个错误 => *** ValueError: cannot index with vector containing NA/NaN values
。我认为问题是因为有些行有空数据,有时我确实收到了。上面的代码应该能够跳过一个空行。
有人有什么建议吗?我是 Pandas 的新手,但到目前为止它是一个有用的图书馆。您的帮助将不胜感激。
注意 上面提供的示例,第一行有一个空数据,我有时会这样做。只是为了确保电话号码不表示为 0。
空数据也被视为字符串,因此如果行为空,则它是 float 和字符串的混合。
最佳答案
使用astype(np.int64)
s = pd.Series(['', 8.00735e+09, 4.35789e+09, 6.10644e+09])
mask = pd.to_numeric(s).notnull()
s.loc[mask] = s.loc[mask].astype(np.int64)
s
0
1 8007350000
2 4357890000
3 6106440000
dtype: object
关于python - 如何舍入/删除 pandas 列中的尾随 ".0"零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42403907/