我有一个Pandas Dataframe,它有一些缺失值。我想用一些不会影响统计数据的东西来填充缺失的值,这是我将对数据执行的操作。
举个例子,如果在Excel中,你尝试对一个包含5个单元格和一个空单元格的单元格求平均值,那么平均值将是5。我希望在Python中也是如此。
我尝试用NaN填充,但是如果我对某一列求和,例如,结果是NaN。我也尝试用None填充,但得到了一个错误,因为我对不同的数据类型求和。
有人能帮忙吗?提前谢谢你。
发布于 2019-02-11 00:11:12
你的两个问题有很多答案。
这是第一个问题的解决方案:
如果您希望在Dataframe中的NaN条目中插入一个不会更改统计数据的特定值,那么我建议您使用该数据的平均值。
示例:
df # your dataframe with NaN values
df.fillna(df.mean(), inplace=True)关于第二个问题:
如果您需要检查数据帧中的描述性统计信息,并且描述性统计信息不应该受到NaN值的影响,那么这里有两个解决方案: 1)
df # your dataframe with NaN values
df.fillna(df.mean(), inplace=True)
df.mean()
df.std()
# or even:
df.describe()2)选项2:
我建议你使用numpy nan函数,比如(numpy.nansum,numpy.nanmean,numpy.nanstd)...
df.apply(numpy.nansum)
df.apply(numpy.nanstd) #...
发布于 2019-02-11 00:18:02
您的问题的答案是,缺少值在Pandas中的工作方式与在Excel中不同。您可以阅读有关该here的技术原因。基本上,没有一个神奇的数字可以让我们填充一个df,它会导致熊猫忽略它。根据我们的需要,我们有时会选择填充缺失的值,有时丢弃它们(永久地或在计算期间),或者有时使用可以使用它们的方法(例如,numpy.nansum,正如Philipe Riskalla Leal所提到的)。
发布于 2019-02-11 00:20:58
您可以使用df.fillna()。下面是一个示例,说明如何执行相同的操作。
import pandas as pd
import numpy as np
df = pd.DataFrame([[np.nan,2,1,np.nan],
[2,np.nan,3,4],
[4,np.nan,np.nan,3],
[np.nan,2,1,np.nan]],columns=list('ABCD'))
df.fillna(0.0)通常,用类似于0的值填充会影响您对数据所做的统计。因此,请选择数据的平均值,这将确保它不会影响您的统计数据。因此,请改用df.fillna(df.mean())
https://stackoverflow.com/questions/54618253
复制相似问题