标签: missing-data

忽略具有多个自变量的 Excel LINEST 函数中的零(或空格)

我想通过linest运行多(!)因子分析,再次排除所有包含零的行(或者如果\ xe2 \ x80 \ x99s更容易的空白单元格)。有没有办法使用 linest 函数来做到这一点?

\n\n

我尝试使用以下公式,我在其他地方找到了该公式,但除了#VALUE!之外什么也得不到。

\n\n
=LINEST(IF(ISNUMBER(C15:C26);C15:C26;);IF(ISNUMBER(C15:C26);CHOOSE({1;2;3};1;D15:D26;E15:E26););1;1)\n
Run Code Online (Sandbox Code Playgroud)\n\n

仅供参考 \xe2\x80\x93 Y 值是 C 列,X 值在 D 和 E 列中。

\n\n

预先感谢!\n朱利安

\n\n

在此输入图像描述

\n

excel regression linear-regression missing-data

2
推荐指数
1
解决办法
2万
查看次数

对 numpy 屏蔽数组的操作给出屏蔽的无效值

来自 numpy数组上的 numpy 操作中的屏蔽数组的文档:

numpy.ma 模块附带了大多数 ufunc 的特定实现。每当输入被屏蔽或超出有效域时,具有有效域(例如对数或除法)的一元和二元函数都会返回屏蔽常量:例如:

ma.log([-1, 0, 1, 2])
masked_array(data = [-- -- 0.0 0.69314718056],
             mask = [ True  True False False],
       fill_value = 1e+20)
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,对于我的计算,我需要知道这些无效操作是在哪里产生的。具体来说,我想要这样:

ma.log([-1, 0, 1, 2])
masked_array(data = [np.nan -- 0.0 0.69314718056],
             mask = [ True  True False False],
       fill_value = 1e+20)
Run Code Online (Sandbox Code Playgroud)

冒着这个问题成为对话的风险,我的主要问题是:

masked_array在计算出的无效值(由fix_invalidnp.nan 和 np.inf 等“固定”的值)不会转换为(并与)掩码值合并的情况下,有什么好的解决方案可以解决这个问题?

我当前的解决方案是计算 上的函数masked_array.data,然后用原始掩码重建掩码数组。但是,我正在编写一个应用程序,它将用户的任意函数映射到许多不同的数组上,其中一些被屏蔽,一些则没有,并且我希望避免仅针对屏蔽数组的特殊处理程序。此外,这些数组在 MISSING、NaN 和 Inf 之间存在区别,这一点很重要,因此我不能只使用带有np.nans 的数组而不是masked值。


此外,如果有人对这种行为存在的原因有任何看法,我想知道。在同一操作中使用此功能似乎很奇怪,因为对未屏蔽值进行操作的结果的有效性实际上是用户的责任,用户可以选择使用该函数来“清理” fix_invalid

此外,如果有人知道 numpy 中缺失值的进展情况,请分享,因为最旧的帖子是 2011-2012 …

python arrays numpy missing-data masked-array

2
推荐指数
1
解决办法
1593
查看次数

在 pandas 中使用 groupby 用模式替换缺失值时出现 IndexError

我有一个需要缺失值处理的数据集。

 Column                      Missing Values

 Complaint_ID                    0         
 Date_received                   0         
 Transaction_Type                0         
 Complaint_reason                0         
 Company_response              22506         
 Date_sent_to_company            0         
 Complaint_Status                0         
 Consumer_disputes             7698
Run Code Online (Sandbox Code Playgroud)

现在的问题是,当我尝试用values其他columns使用模式替换缺失的内容时groupby

代码:

data11["Company_response"] = 
data11.groupby("Complaint_reason").transform(lambda x: x.fillna(x.mode() 
[0]))["Company_response"]

data11["Consumer_disputes"] = 
data11.groupby("Transaction_Type").transform(lambda x: x.fillna(x.mode() 
[0]))["Consumer_disputes"]
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

堆栈跟踪

Traceback (most recent call last):

File "<ipython-input-89-8de6a010a299>", line 1, in <module>
    data11["Company_response"] = data11.groupby("Complaint_reason").transform(lambda x: x.fillna(x.mode()[0]))["Company_response"]

  File "C:\Anaconda3\lib\site-packages\pandas\core\groupby.py", line 3741, in transform
    return self._transform_general(func, *args, **kwargs)

  File "C:\Anaconda3\lib\site-packages\pandas\core\groupby.py", line 3699, in _transform_general
    res = path(group)

  File "C:\Anaconda3\lib\site-packages\pandas\core\groupby.py", line …
Run Code Online (Sandbox Code Playgroud)

python missing-data dataframe pandas pandas-groupby

2
推荐指数
1
解决办法
1368
查看次数

警告:因子包含隐式 NA

我是 R 和 Shiny 的新手,我正在尝试使用 ggplot2 创建一个交互式绘图。当用户选中复选框时,他可以访问多选字段来自定义绘图。

原始数据框包含标识为"N/A"inPublisherYearcolumn 的缺失值。我删除了包含 NAs 的行,complete.cases所以它不应该有任何 NA 剩下。

我运行我的应用程序:好的。我进入默认情节:好的。我选中复选框:Warning: Factor 'Publisher' contains implicit NA, consider using 'forcats::fct_explicit_na'

我想删除这个警告,至少理解它。如果您有任何其他评论,请这样做:我的目标是变得更好。

应用程序R:

df<-read.csv("vgsales.csv")
df$Year[df$Year=="N/A"]<-NA
df$Year<-factor(df$Year)
df$Publisher[df$Publisher=="N/A"]<-NA
df$Publisher<-factor(df$Publisher)
df<-df[complete.cases(df),]

pubSales<-na.omit(df
    %>% group_by(Publisher, Year) 
    %>% summarise(Global_Sales=sum(Global_Sales))
)
pubSales<-pubSales[order(pubSales$Year),]

top5Pub<-head(unique(pubSales[order(-pubSales$Global_Sales),]$Publisher),5)

ui <- navbarPage("Video Games Sales",
    tabPanel("Publishers",
        mainPanel(
            titlePanel(
                title = "Publishers sales"
            ),
            sidebarPanel(
                radioButtons(
                    "pubOptions",
                    "Options",
                    c("Top 5 Publishers"="topFivePub",
                      "Custom Publishers"="customPub"),
                    selected="topFivePub"
                ),
                uiOutput("customPubUI")
            ),
            mainPanel(
                plotOutput("pubPlot")
            ),
            width=12
        )
    ) …
Run Code Online (Sandbox Code Playgroud)

r missing-data na shiny

2
推荐指数
1
解决办法
2万
查看次数

从 netCDF 文件读取数据时 Missing_value 属性丢失?

我正在从 NCEP/NCAR Reanalysis 1 的 netCDF 文件中读取风分量(u 和 v)数据来进行一些计算。我正在使用 xarray 来读取文件。

在其中一项计算中,我想屏蔽掉低于某个阈值的所有数据,使它们等于 Missing_value 属性。我不想使用 NaN。

但是,当使用 xarray 读取数据时,missing_value 属性(存在于 netCDF 文件中的变量中)不会复制到包含数据的 xarray.DataArray。

我找不到使用 xarray 从 netCDF 文件变量复制此属性的方法。

这是我正在尝试做的事情的一个例子:

import xarray as xr
import numpy as np

DS1 = xr.open_dataset( "u_250_850_2009012600-2900.nc" )
DS2 = xr.open_dataset( "v_250_850_2009012600-2900.nc" )

u850 = DS1.uwnd.sel( time='2009-01-28 00:00', level=850, lat=slice(10,-60), lon=slice(260,340) )
v850 = DS2.vwnd.sel( time='2009-01-28 00:00', level=850, lat=slice(10,-60), lon=slice(260,340) )

vvel850 = np.sqrt( u850*u850 + v850*v850 )

jet850 = vvel850.where( vvel850 >= 12 )
#jet850 = …
Run Code Online (Sandbox Code Playgroud)

python netcdf missing-data python-xarray

2
推荐指数
1
解决办法
1355
查看次数

如何根据pandas数据框中的数据类型填充NaN值?

问候大家。我有一个 excel 文件,我需要根据列数据类型清理和填充 NaN 值,例如,如果列数据类型是对象,我需要在该列中填充“NULL”,如果数据类型是整数或浮点数,则需要填充 0在那些列中。

到目前为止,我已经尝试了 2 种方法来完成这项工作,但没有运气,这是第一个

df = pd.read_excel("myExcel_files.xlsx")
Run Code Online (Sandbox Code Playgroud)

使用bulit方法按数据类型选择列

df.select_dtypes(include='int64').fillna(0, inplace=True)

df.select_dtypes(include='float64').fillna(0.0, inplace=True)

df.select_dtypes(include='object').fillna("NULL", inplace=True)
Run Code Online (Sandbox Code Playgroud)

我得到的输出不是错误而是警告,数据框没有变化

C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\frame.py:4259: SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame

See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
  **kwargs
Run Code Online (Sandbox Code Playgroud)

因为第一个是切片错误所以我想一次做一列,这是代码

df = pd.read_excel("myExcel_files.xlsx")

#get the list of all integer columns
int_cols = list(df.select_dtypes('int64').columns)

#get the list of all float columns
float_cols = list(df.select_dtypes('float64').columns)

#get the list of all object columns
object_cols = …
Run Code Online (Sandbox Code Playgroud)

python missing-data dataframe pandas fillna

2
推荐指数
1
解决办法
3173
查看次数

在 R 中,如何估算低于检测限的左删失数据?

这可能是一个简单的问题,但我就是无法解决。我有一个生物化学测试结果的数据框。其中一些测试由于检测限制base_crp而返回值。<3在继续之前我需要估算这些数据。我想正确地做到这一点,所以不仅仅是替换。

我尝试了zCompositions包中的 multLN ,但似乎认为所有<3值都是负数(错误提示X contains negative values)。似乎也没有太多文档——这是一个不起眼的包吗?

我还查看了LODI,但它希望我指定插补模型的协变量 - 有没有正确的方法来选择这些变量?不管怎样,我选择了 3 个理论上关联良好的,并使用了以下代码:

clmi.out <- clmi(formula = log(base_crp) ~ base_wcc + base_neut + base_lymph, df = all, lod = crplim, seed = 12345, n.imps = 5)
Run Code Online (Sandbox Code Playgroud)

其中 base_crp 是我要修复的变量。我用 替换了所有 <3NA并插入了一个新列all$crplim <- "3"。然而,这才刚刚回归 Error in sprintf("%s must be numeric.") : too few arguments

即使我能让 LODI 工作,我也不确定它是否是正确的工具。我只是一名本科生,几乎没有统计背景,所以我不太明白我在做什么——我只是想要一些用数字填充列的东西,这样我就可以继续使用皮尔逊相关性和线性回归等。我真的很感激一些帮助。提前致谢。

statistics r missing-data correlation

2
推荐指数
1
解决办法
1087
查看次数

计算数据帧 Julia 中每列的缺失值

我想计算missing像 df 这样的数据框中每列的值的数量:

\n
Pkg.add("DataFrames")\nusing DataFrames\ndf = DataFrame(i=1:5,\n               x=[missing, 4, missing, 2, 1],\n               y=[missing, missing, "c", "d", "e"])\n\n5\xc3\x973 DataFrame\n Row \xe2\x94\x82 i      x        y       \n     \xe2\x94\x82 Int64  Int64?   String? \n\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\n   1 \xe2\x94\x82     1  missing  missing \n   2 \xe2\x94\x82     2        4  missing \n   3 \xe2\x94\x82     3  missing  c\n   4 \xe2\x94\x82     4        2  d\n   5 \xe2\x94\x82     5        1  e\n
Run Code Online (Sandbox Code Playgroud)\n

这应该为 i 列返回 0,为 x 列返回 2,为 y 列返回 2。所以我想知道是否有人知道如何计算每列缺失值的数量Julia

\n

missing-data dataframe julia

2
推荐指数
1
解决办法
283
查看次数

MATLAB - 读取缺少数据的CSV的最佳方法

我有一个可能缺少数据的CSV文件,数据是字符和数字.处理这个问题的最佳方法是什么?

csv file-io matlab missing-data

1
推荐指数
1
解决办法
4288
查看次数

Stata:用现有观察值替换缺失值

我试图用相同列中的值替换缺少值,取决于它们与其他列的相等性:

我有不同的公司,来自不同的行业和国家,不同年份.以下只是一个小例子.如果它们来自同一家公司,我想用列中的现有值替换缺失值(在列行业或国家/地区).

例如,123公司在第2年失去了它的行业.我拥有该公司所属的行业,从前几年(或有时候成功),但不知道如何添加它.

另一个例子:我有公司444在第3年错过了这个国家.我确实拥有前几年的国家,但不知道如何将其转移/复制到第3年:

 --firm--year--industry--country

 --123----1-------1---------usa

 --123----2-------1---------usa

 --123----3--------.--------usa

 --333----1-------2---------usa

 --333----2--------.---------usa

 --444---1---------.----------fr

 --444---2---------2---------fr

 --444---3---------2----------.
Run Code Online (Sandbox Code Playgroud)

我查看了stata/help和互联网.我只能找到替换命令,但它只替换了相同的数字.

我认为这将是:

replace industry=(problaby something dependant of the firm (and maybe year))  if industry==.

replace country=(problaby something dependant of the firm (and maybe year))  if country==.
Run Code Online (Sandbox Code Playgroud)

我不确定国家的替代,因为观察不是数字.我想我需要为国家替换生成一个带有数字的新变量.

非常感谢!

replace if-statement missing-data stata

1
推荐指数
1
解决办法
1万
查看次数