繁体   English   中英

如何使用 pandas dataframe 查找列中有多少位小数

[英]How to find how many decimal places there are in a column using a pandas dataframe

我有一个大的 dataframe 包含一个小数位数不同的列。 我想在我的示例中创建类似 Decimal Places 的东西。 本专栏的目标是计算

df
ColA   ColB   DecimalPlaces 
A      .03    2
B      .003   3
C      10.01  2
D      11.1   1

我在下面试过,但我无法让它适用于 dataframe 上的整个专栏

d = decimal.Decimal('56.43256436')

d.as_tuple().exponent

这是一种方法

以十进制拆分数字,然后取其长度

df['decimals']=df['ColB'].astype('str').str.split('.', expand=True)[1].apply(lambda x: len(x))
df
    ColA    ColB    DecimalPlaces   decimals
0      A    0.030               2      2
1      B    0.003               3      3
2      C    10.010              2      2
3      D    11.100              1      1

我和这里的 Naveed 基本相同,但是,嗯,略有不同:

df['decimals'] = df['ColB'].map(lambda x: str(x).split('.')[1]).apply(len)

不知道什么更快/更有效。

你可以做:

df['ColB'].astype(str).str.extract(r'\.(.*)', expand=False).str.len()

暂无
暂无

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

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