我有一个Pandas数据框架,它有一些缺失值。我想用一些不影响我对数据进行统计的东西来填充缺失值。举个例子,如果在Excel中,你试图平均一个包含5的单元格和一个空单元格,平均值将是5。我试着用NaN填充,但是如果我对某个列求和,例如,结果是NaN。我也试着用None填充,但是我得到了一个错误,因为我对不同的数据集求和。有人能帮忙吗?先谢了。
NaN
x0fgdtte1#
你的两个问题有很多答案。以下是您的第一个解决方案:如果你想在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)#.
kmbjn2e32#
你的问题的答案是,Pandas中缺少的值与Excel中的工作方式不同。你可以在这里阅读有关技术原因的信息。基本上,我们可以填充一个df,这会导致Pandas忽略它。根据我们的需要,我们有时会选择填充缺少的值,有时会删除它们。(永久地或在计算期间),或者有时使用可以与它们一起工作的方法(例如numpy.nansum,正如Philipe Riskalla Leal提到的那样)。
numpy.nansum
izj3ouym3#
你可以使用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())代替
bjp0bcyl4#
如果您想更改任何特定列的数据类型,其中缺失值填充为'nan',您可以简单地使用下面的代码行进行任何统计操作,它会将该列的所有值转换为数值类型,所有缺失值自动替换为'nan',它不会影响您的统计操作。
df['column_name'] = pd.to_numeric(df['column_name'], errors='coerce')
字符串如果你想对所有的列都做同样的事情,你可以使用用途:
for i in df.columns: df[i] = pd.to_numeric(df[i], errors='coerce')
型
efzxgjgh5#
如何处理Pandas DataFrame中的缺失值?我提供了输入和输出数据的代码:输入:
Original DataFrame: A B C 0 1.0 5.0 10 1 2.0 NaN 11 2 NaN NaN 12 3 4.0 8.0 13
字符串
验证码:
import pandas as pd import numpy as np data = { 'A': [1, 2, np.nan, 4], 'B': [5, np.nan, np.nan, 8], 'C': [10, 11, 12, 13] } df = pd.DataFrame(data) print("Original DataFrame:") print(df) """ Im filling here None value with Zero(0) """ df_filled = df.fillna(0) print("DataFrame after filling missing values:") print(df_filled)
输出:
DataFrame after filling missing values: A B C 0 1.0 5.0 10 1 2.0 0.0 11 2 0.0 0.0 12 3 4.0 8.0 13
5条答案
按热度按时间x0fgdtte1#
你的两个问题有很多答案。
以下是您的第一个解决方案:
如果你想在Dataframe中的NaN条目中插入一个不会改变统计数据的值,那么我建议你使用该数据的平均值。
范例:
字符串
关于第二个问题:
如果您需要从您的框架中检查描述性统计数据,并且描述性统计数据不应受到NaN值的影响,则有两种解决方案:1)
型
2)备选方案2:
我建议你使用numpy nan函数,如(numpy.nansum,numpy.nanmean,numpy.nanstd)...
df.apply(numpy.nansum)
df.apply(numpy.nanstd)#.
kmbjn2e32#
你的问题的答案是,Pandas中缺少的值与Excel中的工作方式不同。你可以在这里阅读有关技术原因的信息。基本上,我们可以填充一个df,这会导致Pandas忽略它。根据我们的需要,我们有时会选择填充缺少的值,有时会删除它们。(永久地或在计算期间),或者有时使用可以与它们一起工作的方法(例如
numpy.nansum
,正如Philipe Riskalla Leal提到的那样)。izj3ouym3#
你可以使用df.fillna()。下面是一个例子来说明你如何做同样的事情。
字符串
一般来说,用0之类的值填充值会影响你对数据进行的统计。所以选择数据的平均值,这会确保它不会影响你的统计。所以,使用df.fillna(df.mean())代替
bjp0bcyl4#
如果您想更改任何特定列的数据类型,其中缺失值填充为'nan',您可以简单地使用下面的代码行进行任何统计操作,它会将该列的所有值转换为数值类型,所有缺失值自动替换为'nan',它不会影响您的统计操作。
字符串
如果你想对所有的列都做同样的事情,你可以使用用途:
型
efzxgjgh5#
如何处理Pandas DataFrame中的缺失值?我提供了输入和输出数据的代码:
输入:
字符串
验证码:
型
输出:
型