Python:获取十进制数的平均值

Python:获取十进制数的平均值,python,pandas,dataframe,decimal,Python,Pandas,Dataframe,Decimal,我使用panda生成了一个包含多行和多列的数据帧 我现在试图确定每列的平均小数数。 例如: A B C 10.1 22.541 21.44 10.2 23.548 19.4 11.2 26.547 15.45 程序将返回1表示A,3表示B,2表示C 考虑到我正在处理的数据帧大约有16000行,您是否有一种有效的方法来实现这一点 谢谢更新的代码 好的,给你。可能有点复杂;) 逐步实现 你能举一些例子来说明你所说的“小数位数”是什么意思吗?目前它是不明确的。请提供一些

我使用panda生成了一个包含多行和多列的数据帧

我现在试图确定每列的平均小数数。 例如:

 A     B      C 
 10.1 22.541 21.44 
 10.2 23.548 19.4
 11.2 26.547 15.45
程序将返回1表示A,3表示B,2表示C

考虑到我正在处理的数据帧大约有16000行,您是否有一种有效的方法来实现这一点

谢谢

更新的代码 好的,给你。可能有点复杂;)

逐步实现
你能举一些例子来说明你所说的“小数位数”是什么意思吗?目前它是不明确的。请提供一些示例输入以及所需的输出。例如,程序应返回2.98的2和2.1的1,并对列中的这些值进行平均:)计算点后的小数数是很棘手的:这不是一个特别明确的概念,由于使用了二进制浮点。请看基思·汤普森关于这个问题的报道。(这是关于C的,但原理是一样的:Python使用相同的浮点格式。)为什么要这样做?这似乎是一个非常奇怪和不切实际的想法。对不起,我不是很清楚,我要求在逗号后计算数字并取平均值:)请你展示一下表达式,你如何用数字10.1、10.2、11.2得到“a”的1?10.1返回1,10.11返回2,10.112返回3。这是小数的数量,逗号后面的字符的数量:)我尝试了我的示例数据帧,它工作正常,但对于我的实际数据帧,它会引发一个错误“KeyError:1”我只是稍微简化了一下,请参阅我的更新。它给了你什么样的错误?
import pandas as pd
import numpy as np

df = pd.DataFrame({'A': [10.1, 10.2, 11.2] ,'B': [22.541, 23.548, 26.547],'C':[21.44,19.4,15.45]})
df

Out[1]:
       A    B       C
0   10.1    22.541  21.44
1   10.2    23.548  19.4
2   11.2    26.547  15.45


[sum((df[col].astype(str).str.split('.', expand=True)[1]).apply(lambda x: len(str(x))))/len((df[col].astype(str).str.split('.', expand=True)[1]).apply(lambda x: len(str(x)))) for col in df.columns]

Out[2]:
[1.0, 3.0, 1.6666666666666667]
df1 = pd.DataFrame([(df[col].astype(str).str.split('.', expand=True)[1]).apply(lambda x: len(str(x))).values for col in df.columns]).T
df1

Out[3]:
    0   1   2
0   1   3   2
1   1   3   1
2   1   3   2

df1.mean()

Out[4]:
0    1.000000
1    3.000000
2    1.666667
dtype: float64