df.mean返回虚数

时间:2019-05-27 13:30:35

标签: python pandas

我有一个约50列约3000行的数据框。大多数单元都是空的,但不是全部。我正在尝试在数据框的末尾添加新行,并使用每列的平均值,并且需要它来忽略空单元格。

我正在使用df.mean(axis = 0),它以某种方式将数据帧的所有值转换为虚数。所有值保持不变,但添加了+ 0j。我不知道为什么。

Turbine.loc['Mean_Values'] = Turbine.mean(axis=0)

我找不到解决方案,是因为没有单元格吗?

2 个答案:

答案 0 :(得分:0)

基于thisdf.mean()将自动跳过参数值为skipna=True的NaN / Null值。示例:

df=pd.DataFrame({'value':[1,2,3,np.nan,5,6,np.nan]})
df=df.append({'value':df.mean(numeric_only=True).value}, ignore_index=True,)
print(df)

输出:

   value
0    1.0
1    2.0
2    3.0
3    NaN
4    5.0
5    6.0
6    NaN
7    3.4

但是,如果单元格中有复数,则df.mean()的结果将转换为复数。示例:

df=pd.DataFrame({'value':[1,2,3,np.nan,5,6,np.nan, complex(1,0)]})
print(df)
print('\n')
df=df.append({'value':df.mean(numeric_only=True).value}, ignore_index=True,)
print(df)

在单元格中具有复杂值的输出:

    value
0  (1+0j)
1  (2+0j)
2  (3+0j)
3     NaN
4  (5+0j)
5  (6+0j)
6     NaN
7  (1+0j)


    value
0  (1+0j)
1  (2+0j)
2  (3+0j)
3     NaN
4  (5+0j)
5  (6+0j)
6     NaN
7  (1+0j)
8  (3+0j)

希望这可以为您提供帮助:)

答案 1 :(得分:0)

某些单元格中包含有关方向(北,西...)的信息,这些信息被解释为虚数。