gpt4 book ai didi

python-3.x - Pandas 数据框所有列的平均值?

转载 作者:行者123 更新时间:2023-12-01 00:46:45 27 4
gpt4 key购买 nike

我正在尝试计算 DataFrame 的所有列的平均值,但看起来第 6 行的 B 列中有一个值阻止计算 C 列的平均值。为什么?

import pandas as pd
from decimal import Decimal
d = [
{'A': 2, 'B': None, 'C': Decimal('628.00')},
{'A': 1, 'B': None, 'C': Decimal('383.00')},
{'A': 3, 'B': None, 'C': Decimal('651.00')},
{'A': 2, 'B': None, 'C': Decimal('575.00')},
{'A': 4, 'B': None, 'C': Decimal('1114.00')},
{'A': 1, 'B': 'TEST', 'C': Decimal('241.00')},
{'A': 2, 'B': None, 'C': Decimal('572.00')},
{'A': 4, 'B': None, 'C': Decimal('609.00')},
{'A': 3, 'B': None, 'C': Decimal('820.00')},
{'A': 5, 'B': None, 'C': Decimal('1223.00')}
]

df = pd.DataFrame(d)

In : df
Out:
A B C
0 2 None 628.00
1 1 None 383.00
2 3 None 651.00
3 2 None 575.00
4 4 None 1114.00
5 1 TEST 241.00
6 2 None 572.00
7 4 None 609.00
8 3 None 820.00
9 5 None 1223.00

测试:
# no mean for C column
In : df.mean()
Out:
A 2.7
dtype: float64

# mean for C column when row 6 is left out of the DF
In : df.head(5).mean()
Out:
A 2.4
B NaN
C 670.2
dtype: float64

# no mean for C column when row 6 is part of the DF
In : df.head(6).mean()
Out:
A 2.166667
dtype: float64

数据类型:
In : df.dtypes
Out:
A int64
B object
C object
dtype: object

In : df.head(5).dtypes
Out:
A int64
B object
C object
dtype: object

最佳答案

如果您只需要带有数字的列,则可以使用特定的列:

In [90]: df[['A','C']].mean()
Out[90]:
A 2.7
C 681.6
dtype: float64

或者在评论中将类型更改为@jezrael 建议:
df['C'] = df['C'].astype(float)

大概 df.mean试图将所有对象转换为数字,如果它掉下来,那么它会回滚并只计算实际数字

关于python-3.x - Pandas 数据框所有列的平均值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33835926/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com