第6章 缺失数据
第6章 缺失数据
在接下来的两章中,会接触到数据预处理中比较麻烦的类型,即缺失数据和文本数据(尤其是混杂型文本)
Pandas在步入1.0后,对数据类型也做出了新的尝试,尤其是Nullable类型和String类型,了解这些可能在未来成为主流的新特性是必要的
import pandas as pd
import numpy as np
df = pd.read_csv('data/table_missing.csv')
df.head()
School | Class | ID | Gender | Address | Height | Weight | Math | Physics | |
---|---|---|---|---|---|---|---|---|---|
0 | S_1 | C_1 | NaN | M | street_1 | 173 | NaN | 34.0 | A+ |
1 | S_1 | C_1 | NaN | F | street_2 | 192 | NaN | 32.5 | B+ |
2 | S_1 | C_1 | 1103.0 | M | street_2 | 186 | NaN | 87.2 | B+ |
3 | S_1 | NaN | NaN | F | street_2 | 167 | 81.0 | 80.4 | NaN |
4 | S_1 | C_1 | 1105.0 | NaN | street_4 | 159 | 64.0 | 84.8 | A- |
一、缺失观测及其类型
1. 了解缺失信息
(a)isna和notna方法
对Series使用会返回布尔列表
df['Physics'].isna().head()
0 False
1 False
2 False
3 True
4 False
Name: Physics, dtype: bool
df['Physics'].notna().head()
0 True
1 True
2 True
3 False
4 True
Name: Physics, dtype: bool
对DataFrame使用会返回布尔表
df.isna().head()
School | Class | ID | Gender | Address | Height | Weight | Math | Physics | |
---|---|---|---|---|---|---|---|---|---|
0 | False | False | True | False | False | False | True | False | False |
1 | False | False | True | False | False | False | True | False | False |
2 | False | False | False | False | False | False | True | False | False |
3 | False | True | True | False | False | False | False | False | True |
4 | False | False | False | True | False | False | False | False | False |
但对于DataFrame我们更关心到底每列有多少缺失值
df.isna().sum()
School 0
Class 4
ID 6
Gender 7
Address 0
Height 0
Weight 13
Math 5
Physics 4
dtype: int64
此外,可以通过第1章中介绍的info函数查看缺失信息
df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 35 entries, 0 to 34
Data columns (total 9 columns):# Column Non-Null Count Dtype
--- ------ -------------- ----- 0 School 35 non-null object 1 Class 31 non-null object 2 ID 29 non-null float643 Gender 28 non-null object 4 Address 35 non-null object 5 Height 35 non-null int64 6 Weight 22 non-null float647 Math 30 non-null float648 Physics 31 non-null object
dtypes: float64(3), int64(1), object(5)
memory usage: 2.6+ KB
(b)查看缺失值的所以在行
以最后一列为例,挑出该列缺失值的行
df[df['Physics'].isna()]
School | Class | ID | Gender | Address | Height | Weight | Math | Physics | |
---|---|---|---|---|---|---|---|---|---|
3 | S_1 | NaN | NaN | F | street_2 | 167 | 81.0 | 80.4 | NaN |
8 | S_1 | C_2 | 1204.0 | F | street_5 | 162 | 63.0 | 33.8 | NaN |
13 | S_1 | C_3 | 1304.0 | NaN | street_2 | 195 | 70.0 | 85.2 | NaN |
22 | S_2 | C_2 | 2203.0 | M | street_4 | 155 | 91.0 | 73.8 | NaN |
(c)挑选出所有非缺失值列
使用all就是全部非缺失值,如果是any就是至少有一个不是缺失值
df.notna().all(0)
School True
Class False
ID False
Gender False
Address True
Height True
Weight False
Math False
Physics False
dtype: bool
df[df.notna().all(1)]
School | Class | ID | Gender | Address | Height | Weight | Math | Physics | |
---|---|---|---|---|---|---|---|---|---|
5 | S_1 | C_2 | 1201.0 | M | street_5 | 159 | 68.0 | 97.0 | A- |
6 | S_1 | C_2 | 1202.0 | F | street_4 | 176 | 94.0 | 63.5 | B- |
12 | S_1 | C_3 | 1303.0 | M | street_7 | 188 | 82.0 | 49.7 | B |
17 | S_2 | C_1 | 2103.0 | M | street_4 | 157 | 61.0 | 52.5 | B- |
21 | S_2 | C_2 | 2202.0 | F | street_7 | 194 | 77.0 | 68.5 | B+ |
25 | S_2 | C_3 | 2301.0 | F | street_4 | 157 | 78.0 | 72.3 | B+ |
27 | S_2 | C_3 | 2303.0 | F | street_7 | 190 | 99.0 | 65.9 | C |
28 | S_2 | C_3 | 2304.0 | F | street_6 | 164 | 81.0 | 95.5 | A- |
29 | S_2 | C_3 | 2305.0 | M | street_4 | 187 | 73.0 | 48.9 | B |
2. 三种缺失符号
(a)np.nan
np.nan是一个麻烦的东西,首先它不等与任何东西,甚至不等于自己
np.nan == np.nan
False
np.nan == 0
False
np.nan == None
False
在用equals函数比较时,自动略过两侧全是np.nan的单元格,因此结果不会影响
df.equals(df)
True
其次,它在numpy中的类型为浮点,由此导致数据集读入时,即使原来是整数的列,只要有缺失值就会变为浮点型
type(np.nan)
float
pd.Series([1,2,3]).dtype
dtype('int64')
pd.Series([1,np.nan,3]).dtype
dtype('float64')
此外,对于布尔类型的列表,如果是np.nan填充,那么它的值会自动变为True而不是False
pd.Series([1,0,3],dtype='bool')
0 True
1 False
2 True
dtype: bool
pd.Series([1,np.nan,3],dtype='bool')
0 True
1 True
2 True
dtype: bool
但当修改一个布尔列表时,会改变列表类型,而不是赋值为True
s = pd.Series([True,False],dtype='bool')
s[1]=np.nan
s
0 1.0
1 NaN
dtype: float64
在所有的表格读取后,无论列是存放什么类型的数据,默认的缺失值全为np.nan类型
因此整型列转为浮点;而字符由于无法转化为浮点,因此只能归并为object类型(‘O’),原来是浮点型的则类型不变
df['ID'].dtype
dtype('float64')
df['Math'].dtype
dtype('float64')
df['Class'].dtype
dtype('O')
(b)None
None比前者稍微好些,至少它会等于自身
None == None
True
它的布尔值为False
pd.Series([None],dtype='bool')
0 False
dtype: bool
修改布尔列表不会改变数据类型
s = pd.Series([True,False],dtype='bool')
s[0]=None
s
0 False
1 False
dtype: bool
s = pd.Series([1,0],dtype='bool')
s[0]=None
s
0 False
1 False
dtype: bool
在传入数值类型后,会自动变为np.nan
type(pd.Series([1,None])[1])
pd.Series([1,None])
0 1.0
1 NaN
dtype: float64
只有当传入object类型是保持不动,几乎可以认为,除非人工命名None,它基本不会自动出现在Pandas中
type(pd.Series([1,None],dtype='O')[1])
NoneType
在使用equals函数时不会被略过,因此下面的情况下返回False
pd.Series([None]).equals(pd.Series([np.nan]))
False
(c)NaT
NaT是针对时间序列的缺失值,是Pandas的内置类型,可以完全看做时序版本的np.nan,与自己不等,且使用equals是也会被跳过
s_time = pd.Series([pd.Timestamp('20120101')]*5)
s_time
0 2012-01-01
1 2012-01-01
2 2012-01-01
3 2012-01-01
4 2012-01-01
dtype: datetime64[ns]
s_time[2] = None
s_time
0 2012-01-01
1 2012-01-01
2 NaT
3 2012-01-01
4 2012-01-01
dtype: datetime64[ns]
s_time[2] = np.nan
s_time
0 2012-01-01
1 2012-01-01
2 NaT
3 2012-01-01
4 2012-01-01
dtype: datetime64[ns]
s_time[2] = pd.NaT
s_time
0 2012-01-01
1 2012-01-01
2 NaT
3 2012-01-01
4 2012-01-01
dtype: datetime64[ns]
type(s_time[2])
pandas._libs.tslibs.nattype.NaTType
s_time[2] == s_time[2]
False
s_time.equals(s_time)
True
s = pd.Series([True,False],dtype='bool')
s[1]=pd.NaT
s
0 True
1 True
dtype: bool
3. Nullable类型与NA符号
这是Pandas在1.0新版本中引入的重大改变,其目的就是为了(在若干版本后)解决之前出现的混乱局面,统一缺失值处理方法
“The goal of pd.NA is provide a “missing” indicator that can be used consistently across data types (instead of np.nan, None or pd.NaT depending on the data type).”——User Guide for Pandas v-1.0
官方鼓励用户使用新的数据类型和缺失类型pd.NA
(a)Nullable整形
对于该种类型而言,它与原来标记int上的符号区别在于首字母大写:‘Int’
s_original = pd.Series([1, 2], dtype="int64")
s_original
0 1
1 2
dtype: int64
s_new = pd.Series([1, 2], dtype="Int64")
s_new
0 1
1 2
dtype: Int64
它的好处就在于,其中前面提到的三种缺失值都会被替换为统一的NA符号,且不改变数据类型
s_original[1] = np.nan
s_original
0 1.0
1 NaN
dtype: float64
s_new[1] = np.nan
s_new
0 1
1 <NA>
dtype: Int64
s_new[1] = None
s_new
0 1
1 <NA>
dtype: Int64
s_new[1] = pd.NaT
s_new
0 1
1 <NA>
dtype: Int64
(b)Nullable布尔
对于该种类型而言,作用与上面的类似,记号为boolean
s_original = pd.Series([1, 0], dtype="bool")
s_original
0 True
1 False
dtype: bool
s_new = pd.Series([0, 1], dtype="boolean")
s_new
0 False
1 True
dtype: boolean
s_original[0] = np.nan
s_original
0 NaN
1 0.0
dtype: float64
s_original = pd.Series([1, 0], dtype="bool") #此处重新加一句是因为前面赋值改变了bool类型
s_original[0] = None
s_original
0 False
1 False
dtype: bool
s_new[0] = np.nan
s_new
0 <NA>
1 True
dtype: boolean
s_new[0] = None
s_new
0 <NA>
1 True
dtype: boolean
s_new[0] = pd.NaT
s_new
0 <NA>
1 True
dtype: boolean
需要注意的是,含有pd.NA的布尔列表在1.0.2之前的版本作为索引时会报错,这是一个之前的bug,现已经修复
s = pd.Series(['dog','cat'])
s[s_new]
1 cat
dtype: object
(c)string类型
该类型是1.0的一大创新,目的之一就是为了区分开原本含糊不清的object类型,这里将简要地提及string,因为它是第7章的主题内容
它本质上也属于Nullable类型,因为并不会因为含有缺失而改变类型
s = pd.Series(['dog','cat'],dtype='string')
s
0 dog
1 cat
dtype: string
s[0] = np.nan
s
0 <NA>
1 cat
dtype: string
s[0] = None
s
0 <NA>
1 cat
dtype: string
s[0] = pd.NaT
s
0 <NA>
1 cat
dtype: string
此外,和object类型的一点重要区别就在于,在调用字符方法后,string类型返回的是Nullable类型,object则会根据缺失类型和数据类型而改变
先将pandas的series对象转成strings对象,再使用字符串相关函数。
s.str[0]
0 a
1 <NA>
2 b
dtype: string
s = pd.Series(["a", None, "b"], dtype="string")
s.str.count('a')
0 1
1 <NA>
2 0
dtype: Int64
s2 = pd.Series(["a", None, "b"], dtype="object")
s2.str.count("a")
0 1.0
1 NaN
2 0.0
dtype: float64
Python isdigit() 方法检测字符串是否只由数字组成。
s.str.isdigit()
0 False
1 <NA>
2 False
dtype: boolean
s2.str.isdigit()
0 False
1 None
2 False
dtype: object
4. NA的特性
(a)逻辑运算
只需看该逻辑运算的结果是否依赖pd.NA的取值,如果依赖,则结果还是NA,如果不依赖,则直接计算结果
True | pd.NA
True
pd.NA | True
True
False | pd.NA
<NA>
False & pd.NA
False
True & pd.NA
<NA>
取值不明直接报错
# bool(pd.NA)
(b)算术运算和比较运算
这里只需记住除了下面两类情况,其他结果都是NA即可
pd.NA ** 0
1
1 ** pd.NA
1
其他情况:
pd.NA + 1
<NA>
"a" * pd.NA
<NA>
pd.NA == pd.NA
<NA>
pd.NA < 2.5
<NA>
np.log(pd.NA)
<NA>
np.add(pd.NA, 1)
<NA>
5. convert_dtypes方法
这个函数的功能往往就是在读取数据时,就把数据列转为Nullable类型,是1.0的新函数
pd.read_csv('data/table_missing.csv').dtypes
School object
Class object
ID float64
Gender object
Address object
Height int64
Weight float64
Math float64
Physics object
dtype: object
pd.read_csv('data/table_missing.csv').convert_dtypes().dtypes
School string
Class string
ID Int64
Gender string
Address string
Height Int64
Weight Int64
Math float64
Physics string
dtype: object
二、缺失数据的运算与分组
1. 加号与乘号规则
使用加法时,缺失值为0
s = pd.Series([2,3,np.nan,4])
s.sum()
9.0
使用乘法时,缺失值为1
s.prod()
24.0
使用累计函数时,缺失值自动略过
s.cumsum()
0 2.0
1 5.0
2 NaN
3 9.0
dtype: float64
s.cumprod()
0 2.0
1 6.0
2 NaN
3 24.0
dtype: float64
# 元素与先前n 个元素的相差百分比。
s.pct_change()
0 NaN
1 0.500000
2 0.000000
3 0.333333
dtype: float64
2. groupby方法中的缺失值
自动忽略为缺失值的组
df_g = pd.DataFrame({'one':['A','B','C','D',np.nan],'two':np.random.randn(5)})
df_g
one | two | |
---|---|---|
0 | A | 0.411864 |
1 | B | -0.687861 |
2 | C | -0.627106 |
3 | D | -0.266889 |
4 | NaN | -1.235148 |
df_g.groupby('one').groups
# type(df_g.groupby('one'))
{'A': Int64Index([0], dtype='int64'),'B': Int64Index([1], dtype='int64'),'C': Int64Index([2], dtype='int64'),'D': Int64Index([3], dtype='int64')}
三、填充与剔除
1. fillna方法
(a)值填充与前后向填充(分别与ffill方法和bfill方法等价)
df['Physics'].fillna('missing').head()
0 A+
1 B+
2 B+
3 missing
4 A-
Name: Physics, dtype: object
df['Physics'].fillna(method='ffill').head()
0 A+
1 B+
2 B+
3 B+
4 A-
Name: Physics, dtype: object
df['Physics'].fillna(method='backfill').head()
0 A+
1 B+
2 B+
3 A-
4 A-
Name: Physics, dtype: object
(b)填充中的对齐特性
df_f.mean(0)
A 2.0
B 3.0
C 4.0
dtype: float64
df_f = pd.DataFrame({'A':[1,3,np.nan],'B':[2,4,np.nan],'C':[3,5,np.nan]})
df_f.fillna(df_f.mean())
A | B | C | |
---|---|---|---|
0 | 1.0 | 2.0 | 3.0 |
1 | 3.0 | 4.0 | 5.0 |
2 | 2.0 | 3.0 | 4.0 |
返回的结果中没有C,根据对齐特点不会被填充
df_f.fillna(df_f.mean()[['A','B']])
A | B | C | |
---|---|---|---|
0 | 1.0 | 2.0 | 3.0 |
1 | 3.0 | 4.0 | 5.0 |
2 | 2.0 | 3.0 | NaN |
2. dropna方法
(a)axis参数
df_d = pd.DataFrame({'A':[np.nan,np.nan,np.nan],'B':[np.nan,3,2],'C':[3,2,1]})
df_d
A | B | C | |
---|---|---|---|
0 | NaN | NaN | 3 |
1 | NaN | 3.0 | 2 |
2 | NaN | 2.0 | 1 |
df_d.dropna(axis=0)
A | B | C |
---|
df_d.dropna(axis=1)
C | |
---|---|
0 | 3 |
1 | 2 |
2 | 1 |
(b)how参数(可以选all或者any,表示全为缺失去除和存在缺失去除)
df_d.dropna(axis=1,how='all')
B | C | |
---|---|---|
0 | NaN | 3 |
1 | 3.0 | 2 |
2 | 2.0 | 1 |
(c)subset参数(即在某一组列范围中搜索缺失值)
df_d.dropna(axis=0,subset=['B','C'])
A | B | C | |
---|---|---|---|
1 | NaN | 3.0 | 2 |
2 | NaN | 2.0 | 1 |
四、插值(interpolation)
1. 线性插值
(a)索引无关的线性插值
默认状态下,interpolate会对缺失的值进行线性插值
s = pd.Series([1,10,15,-5,-2,np.nan,np.nan,28])
s
0 1.0
1 10.0
2 15.0
3 -5.0
4 -2.0
5 NaN
6 NaN
7 28.0
dtype: float64
s.interpolate(inplace=True)
s.interpolate().plot()
<matplotlib.axes._subplots.AxesSubplot at 0x1c830628198>
此时的插值与索引无关
s.index = np.sort(np.random.randint(50,300,8))
s.interpolate()
#值不变
91 1.0
98 10.0
126 15.0
153 -5.0
153 -2.0
153 8.0
182 18.0
260 28.0
dtype: float64
s.interpolate().plot()
#后面三个点不是线性的(如果几乎为线性函数,请重新运行上面的一个代码块,这是随机性导致的)
<matplotlib.axes._subplots.AxesSubplot at 0x1c8326fbe80>
(b)与索引有关的插值
method中的index和time选项可以使插值线性地依赖索引,即插值为索引的线性函数
s.interpolate(method='index').plot()
#可以看到与上面的区别
<matplotlib.axes._subplots.AxesSubplot at 0x7fe7dca0c4d0>
如果索引是时间,那么可以按照时间长短插值,对于时间序列将在第9章详细介绍
s_t = pd.Series([0,np.nan,10],index=[pd.Timestamp('2012-05-01'),pd.Timestamp('2012-05-07'),pd.Timestamp('2012-06-03')])
s_t
2012-05-01 0.0
2012-05-07 NaN
2012-06-03 10.0
dtype: float64
s_t.interpolate().plot()
<matplotlib.axes._subplots.AxesSubplot at 0x1c832777358>
s_t.interpolate(method='time').plot()
<matplotlib.axes._subplots.AxesSubplot at 0x1c8327ffda0>
2. 高级插值方法
此处的高级指的是与线性插值相比较,例如样条插值、多项式插值、阿基玛插值等(需要安装Scipy),方法详情请看这里
关于这部分仅给出一个官方的例子,因为插值方法是数值分析的内容,而不是Pandas中的基本知识:
np.random.randn(37)
np.arange(1, 10.1, .25)
array([ 1. , 1.25, 1.5 , 1.75, 2. , 2.25, 2.5 , 2.75, 3. ,3.25, 3.5 , 3.75, 4. , 4.25, 4.5 , 4.75, 5. , 5.25,5.5 , 5.75, 6. , 6.25, 6.5 , 6.75, 7. , 7.25, 7.5 ,7.75, 8. , 8.25, 8.5 , 8.75, 9. , 9.25, 9.5 , 9.75,10. ])
ser = pd.Series(np.arange(1, 10.1, .25) ** 2 + np.random.randn(37))
missing = np.array([4, 13, 14, 15, 16, 17, 18, 20, 29])
ser[missing] = np.nan
methods = ['linear', 'quadratic', 'cubic']
df = pd.DataFrame({m: ser.interpolate(method=m) for m in methods})
display(df.head())
df.plot()
linear | quadratic | cubic | |
---|---|---|---|
0 | 1.699633 | 1.699633 | 1.699633 |
1 | 1.885096 | 1.885096 | 1.885096 |
2 | 0.082041 | 0.082041 | 0.082041 |
3 | 3.804304 | 3.804304 | 3.804304 |
4 | 4.156255 | 4.760702 | 4.853245 |
<matplotlib.axes._subplots.AxesSubplot at 0x1c833fbb128>
3. interpolate中的限制参数
(a)limit表示最多插入多少个
s = pd.Series([1,np.nan,np.nan,np.nan,5])
s.interpolate(limit=2)
0 1.0
1 2.0
2 3.0
3 NaN
4 5.0
dtype: float64
(b)limit_direction表示插值方向,可选forward,backward,both,默认前向
s = pd.Series([np.nan,np.nan,1,np.nan,np.nan,np.nan,5,np.nan,np.nan,])
s.interpolate(limit_direction='backward')
# s.interpolate(limit_direction='forward')
0 1.0
1 1.0
2 1.0
3 2.0
4 3.0
5 4.0
6 5.0
7 NaN
8 NaN
dtype: float64
(c)limit_area表示插值区域,可选inside,outside,默认None
s = pd.Series([np.nan,np.nan,1,np.nan,np.nan,np.nan,5,np.nan,np.nan,])
s.interpolate(limit_area='inside')
0 NaN
1 NaN
2 1.0
3 2.0
4 3.0
5 4.0
6 5.0
7 NaN
8 NaN
dtype: float64
s = pd.Series([np.nan,np.nan,1,np.nan,np.nan,np.nan,5,np.nan,np.nan,])
s.interpolate(limit_area='outside')
0 NaN
1 NaN
2 1.0
3 NaN
4 NaN
5 NaN
6 5.0
7 5.0
8 5.0
dtype: float64
五、问题与练习
1. 问题
【问题一】 如何删除缺失值占比超过25%的列?
方法一
df_d = pd.DataFrame({'A':[np.nan,np.nan,np.nan],'B':[np.nan,3,2],'C':[3,2,1]})
temp=df_d.isna().sum()/(df_d.count()+df_d.isna().sum())
for i in temp[temp>0.25].index :print(type(i),i)df_d.drop(columns=i,inplace=True)display(df_d)
<class 'str'> A
B | C | |
---|---|---|
0 | NaN | 3 |
1 | 3.0 | 2 |
2 | 2.0 | 1 |
<class 'str'> B
C | |
---|---|
0 | 3 |
1 | 2 |
2 | 1 |
方法二
df_d = pd.DataFrame({'A':[np.nan,np.nan,np.nan],'B':[np.nan,3,2],'C':[3,2,1]})
def drop_col(df, col_name, cutoff=0.25):n = len(df)cnt = df[col_name].count()if (float(cnt) / n) < (1-cutoff):df.drop(col_name, axis=1, inplace=True)
for i in df_d.columns:print(i)drop_col(df_d,i,0.25)display(df_d)
A
B | C | |
---|---|---|
0 | NaN | 3 |
1 | 3.0 | 2 |
2 | 2.0 | 1 |
B
C | |
---|---|
0 | 3 |
1 | 2 |
2 | 1 |
C
C | |
---|---|
0 | 3 |
1 | 2 |
2 | 1 |
【问题二】 什么是Nullable类型?请谈谈为什么要引入这个设计?
- 感觉是为了统一三种缺失符号np.nan,None,NaT的混乱的情况,对于缺失值处理进行统一。
np.nan
- 不等于任何东西
- 用equals函数时自动略过两侧都是np.nan的单元格
- 因为np.nan在numpy中是浮点型,因此导致数据集读入的时候即使原来是整数的列,只要有缺失字符无法转变为浮点,只能归并为为object类型的(‘O’))
- 布尔类型np.nan填充为True
- 修改布尔列表改变列表类型
None
- 等于自身
- 布尔值为False
- 修改布尔列表不改变数据类型
- 使用equals函数是不会被略过
NaT
- 时序版本的np.nan
- 与自己不等
- 使用equals会被跳过
【问题三】 对于一份有缺失值的数据,可以采取哪些策略或方法深化对它的了解?
- 首先分析数据的类型
- 1.如果数据量很大删去这些带有缺失值的数据无关紧要的话可以考虑把带有缺失值的数据删去
- 2.如果缺失的部分是不可或缺的关键部分那样的话这些数据就变成了垃圾数据必须删去
- 3.如果数据量比较小,并且缺失的数据影响不是特别大,可以考虑填充缺失值,具体的填充方式根据数据的具体含义跟客观规律来定。
# df_d.dropna(axis=1,subset=[(df_d.isna().sum()/(df_d.count()+df_d.isna().sum()).values>0.25))]
2. 练习
【练习一】现有一份虚拟数据集,列类型分别为string/浮点/整型,请解决如下问题:
(a)请以列类型读入数据,并选出C为缺失值的行。
pd.read_csv('data/Missing_data_one.csv').head()
pd.read_csv('data/Missing_data_one.csv').convert_dtypes().head()
A | B | C | |
---|---|---|---|
0 | not_NaN | 0.922 | 4 |
1 | not_NaN | 0.700 | <NA> |
2 | not_NaN | 0.503 | 8 |
3 | not_NaN | 0.938 | 4 |
4 | not_NaN | 0.952 | 10 |
a=pd.read_csv('data/Missing_data_one.csv').convert_dtypes()
a[a['C'].isna()]
A | B | C | |
---|---|---|---|
1 | not_NaN | 0.700 | <NA> |
5 | not_NaN | 0.972 | <NA> |
11 | not_NaN | 0.736 | <NA> |
19 | not_NaN | 0.684 | <NA> |
21 | not_NaN | 0.913 | <NA> |
(b)现需要将A中的部分单元转为缺失值,单元格中的最小转换概率为25%,且概率大小与所在行B列单元的值成正比。
方法一
b=pd.read_csv('data/Missing_data_one.csv').convert_dtypes()for i in b.index:if np.random.rand() <(0.25*b.at[i,'B']/b['B'].min()):b.at[i,'A']=np.nandisplay(b.head())
A | B | C | |
---|---|---|---|
0 | not_NaN | 0.922 | 4 |
1 | <NA> | 0.700 | <NA> |
2 | <NA> | 0.503 | 8 |
3 | <NA> | 0.938 | 4 |
4 | <NA> | 0.952 | 10 |
方法二
b=pd.read_csv('data/Missing_data_one.csv').convert_dtypes()
b['A']=pd.Series(list(zip(b['A'].values,b['B'].values))).apply(lambda x:x[0]if np.random.rand()<(0.25*x[1]/b['B'].min()) else pd.NA)
b.head()
A | B | C | |
---|---|---|---|
0 | <NA> | 0.922 | 4 |
1 | <NA> | 0.700 | <NA> |
2 | not_NaN | 0.503 | 8 |
3 | not_NaN | 0.938 | 4 |
4 | <NA> | 0.952 | 10 |
【练习二】 现有一份缺失的数据集,记录了36个人来自的地区、身高、体重、年龄和工资,请解决如下问题:
(a)统计各列缺失的比例并选出在后三列中至少有两个非缺失值的行。
pd.read_csv('data/Missing_data_two.csv').head()
编号 | 地区 | 身高 | 体重 | 年龄 | 工资 | |
---|---|---|---|---|---|---|
0 | 1 | A | 157.50 | NaN | 47.0 | 15905.0 |
1 | 2 | B | 202.00 | 91.80 | 25.0 | NaN |
2 | 3 | C | 169.09 | 62.18 | NaN | NaN |
3 | 4 | A | 166.61 | 59.95 | 77.0 | 5434.0 |
4 | 5 | B | 185.19 | NaN | 62.0 | 4242.0 |
缺失的比例
a=pd.read_csv('data/Missing_data_two.csv').convert_dtypes()
a.isna().sum()/(a.count()+a.isna().sum())
编号 0.000000
地区 0.000000
身高 0.000000
体重 0.222222
年龄 0.250000
工资 0.222222
dtype: float64
取出至少两个非缺失的行
temp=list(a.columns)[-3:]
temp
a[temp][a[temp].isna().sum(1)<=1].head()
体重 | 年龄 | 工资 | |
---|---|---|---|
0 | NaN | 47 | 15905 |
1 | 91.80 | 25 | <NA> |
3 | 59.95 | 77 | 5434 |
4 | NaN | 62 | 4242 |
5 | 78.42 | 55 | 13959 |
(b)请结合身高列和地区列中的数据,对体重进行合理插值。
方法一
b=pd.read_csv('data/Missing_data_two.csv').convert_dtypes()
for i in b['地区'].values.unique():b.loc[b[b['地区']==i].sort_values(by='身高').index,'体重']=b[b['地区']==i].sort_values(by='身高')['体重'].interpolate()
# display(b[b['地区']==i].sort_values(by='身高'))
# display(b[b['地区']==i].sort_values(by='身高').index)
# .interpolate()
display(b.head())
编号 | 地区 | 身高 | 体重 | 年龄 | 工资 | |
---|---|---|---|---|---|---|
0 | 1 | A | 157.50 | 53.58 | 47 | 15905 |
1 | 2 | B | 202.00 | 91.80 | 25 | <NA> |
2 | 3 | C | 169.09 | 62.18 | <NA> | <NA> |
3 | 4 | A | 166.61 | 59.95 | 77 | 5434 |
4 | 5 | B | 185.19 | 81.75 | 62 | 4242 |
# b['体重'].plot()
# b=pd.read_csv('data/Missing_data_two.csv').convert_dtypes()
# b[b['地区']=='A'].sort_values(by='身高')['体重'].interpolate()
方法二
b=pd.read_csv('data/Missing_data_two.csv').convert_dtypes()
for name ,group in b.groupby('地区'):b.loc[group.index,'体重']=group.sort_values(by='身高')['体重'].interpolate()#['体重']
b.head()
编号 | 地区 | 身高 | 体重 | 年龄 | 工资 | |
---|---|---|---|---|---|---|
0 | 1 | A | 157.50 | 53.58 | 47 | 15905 |
1 | 2 | B | 202.00 | 91.80 | 25 | <NA> |
2 | 3 | C | 169.09 | 62.18 | <NA> | <NA> |
3 | 4 | A | 166.61 | 59.95 | 77 | 5434 |
4 | 5 | B | 185.19 | 81.75 | 62 | 4242 |
参考答案写法
b=pd.read_csv('data/Missing_data_two.csv').convert_dtypes()
for name ,group in b.groupby('地区'):b.loc[group.index,'体重']=group[['身高','体重']].sort_values(by='身高').interpolate()#['体重']
# b['体重']=b['体重'].round(decimals=2)
b.head()
编号 | 地区 | 身高 | 体重 | 年龄 | 工资 | |
---|---|---|---|---|---|---|
0 | 1 | A | 157.50 | 53.58 | 47 | 15905 |
1 | 2 | B | 202.00 | 91.80 | 25 | <NA> |
2 | 3 | C | 169.09 | 62.18 | <NA> | <NA> |
3 | 4 | A | 166.61 | 59.95 | 77 | 5434 |
4 | 5 | B | 185.19 | 81.75 | 62 | 4242 |
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- Python五大应用领域
Python五大应用领域,要说近两年最火的编程语言是什么?毫无疑问是Python,而且不仅是编程人员、为做论文数据的研究生、职场人士纷纷加入Python学习大军。而市面上的Python课程也会针对大家不同需求进行调整。对于想要通过Python学习获得一份工作的朋友,对于Python的应用领域必…...
2024/4/15 3:18:02 - Python自学笔记D7
今天进入面向对象高级编程! 面向对象高级编程__slot__限制实例属性@property装饰器多重继承定制类:str,iter,getitem枚举类元类 主要讨论多重继承、定制类、元类等概念。 __slot__限制实例属性 首先来看一下给实例绑定方法和给类绑定方法的不同。 def set_age(self, age): # …...
2024/4/15 3:18:00 - 关于安装anaconda错误:failed to create anaconda menus
关于anaconda Anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。 因为包含了大量的科学包,Anaconda 的下载文件比较大(约 531 MB),如果只需要某些包,或者需要节省带宽或存储空间,也可以使用Miniconda这个较小的发行版(仅包含…...
2024/4/15 3:17:59 - Thymeleaf 中 UR写法
1 , 正常URL<a href="" th:href="@{http://www.baidu.com}">网站地址</a>2 , URL带参数的写法<a class="delete" th:href="@{/Category/{id}(id=${c.id})}">网站地址</a>...
2024/4/15 3:17:58 - [预训练语言模型专题] SpanBERT: 抽取式问答的利器
本文为预训练语言模型专题的第16篇。快速传送门 1-4:[萌芽时代]、[风起云涌]、[文本分类通用技巧] 、 [GPT家族]5-8:[BERT来临]、[浅析BERT代码]、[ERNIE合集]、[MT-DNN(KD)]9-12:[Transformer]、[Transformer-XL]、[UniLM]、[Mass-Bart]13-14:[跨语种模型]、[XLNet],[RoBE…...
2024/4/24 14:18:51 - Docker - 入门配置与HelloWorld
CentOS 安装Docker 官网介绍Docker的安装:包括Linux、Max OS、Windows -》Install Docker Engine on CentOS 这里展示的是CentOS 7 安装Docker(和CentOS 6有一定的不同)To install Docker Engine, you need a maintained version of CentOS 7.CentOS 6 不支持一些功能 如果不…...
2024/4/24 14:18:50 - shell-脚本_判断文件属性
判断文件属性脚本#!/bin/bash # 输入一个路径 read -p "输入文件的绝对路径:" file # 死循环 while true do # 判断文件是否存在 if [ -e $file ];thenecho "文件存在,开始判断"while true doecho "-----------------"echo "1.文件是否为…...
2024/4/24 14:18:49 - Deep Learning从入门到出世(四)
Deep Learning 圣经四. 后记1. 哥德尔 艾舍尔 巴赫:集异璧之大成2. 禅与摩托车维修艺术 四. 后记 据说现在如果对外宣称自己是做Deep Learning或者人工智能方面的,都会被认为是骗子。当人工智能经历三起三落,后借着Deep Learning的东风又强势崛起时,人们寄予了它极大的厚望…...
2024/4/24 14:18:50 - 数据结构(33)树的应用--并查集
并查集是一种简单的集合表示,它支持以下3种操作:1)Union(S,Root1,Root2):把集合S中的子集合Root2并入子集合Root1。要求Root1和Root2互不相交,否则不执行合并。2)Find(S,x):查找集合S中单元素x所在的子集合,并返回该子集合的名字。3)Initial(S):将集合S中的每个元素都…...
2024/4/24 14:18:49 - LeetCode 78, LintCode 17 增量法求所有子集
增量法求所有子集,相比回溯,更快。 vector<vector<int>> subsets(vector<int>& nums) {vector<vector<int>> res(1,vector<int>());if(nums.size() == 0) return res;for(auto &x: nums){vector<vector<int>> tool(…...
2024/4/24 14:18:48 - 信息安全基础测试B卷
...
2024/4/24 14:18:45 - python--设计模式--单例模式
场景:程序执行期间某一个类要求全程只需一个实例对象。 1、使用__new__()方法实现 class Add(object):__singleton = Nonedef __new__(cls, *args, **kwargs):if not cls.__singleton:cls.__singleton = super(Add, cls).__new__(cls)return cls.__singletondef __init__(self…...
2024/4/24 14:18:44 - 习题9-2 计算两个复数之积 (15分)
一、需求本题要求实现一个计算复数之积的简单函数。函数接口定义如下struct complex multiply(struct complex x, struct complex y);其中struct complex是复数结构体,其定义如下struct complex{int real;int imag; };二、裁判程序样例#include <stdio.h>struct complex…...
2024/4/24 14:18:44 - 理论力学中的 动量定理、动量矩定理、动能定理
1. 质点的动量定理 (mv) = F 质点动量对时间的变化率等于质点所受的力 (mv)2 - (mv)1 = I 质点动量的增量等于质点所受的力的冲量 2.1 质点系的动量定理 每个质点的动量的变化率 等于 所受的内力与外力之和 (mivi) = Fi+Fi* 式1 注:Fi*表示第i个质点受到的内力 质点系…...
2024/4/24 14:18:42 - 突破硬件瓶颈(一):Intel体系架构的发展与瓶颈挖掘
突破硬件瓶颈(一):Intel体系架构的发展与瓶颈挖掘 原创 牛金健 TaoCloud 3月20日想要取得如此强的性能,必须要有突破时下存储软件对于硬件利用的瓶颈。 而要突破这些瓶颈,就需要对硬件有深入的了解,而后利用软件想方设法突破,或者绕过他们,实现性能的腾飞。 本文是突破…...
2024/4/24 14:18:41 - shell-脚本_IP判断
需求生成一个ip.txt文件判断:当ip为192开头的,显示这个ip是ok的,当ip为172开头的,就调用iptables drop掉生成IP.txt文件并键入ipvim ip.txt键入:192.168.1.1192.168.1.2172.129.1.1172.129.1.2shell脚本源码#!/bin/bash # 用数组的方式输出ip.txt文件 ip=(`cat /root/ip.tx…...
2024/4/24 14:18:40 - 字符串缩写
牛客网题目——字符串缩写 题目描述 在英文中,我们会把一些长的名字或者短语进行缩写。例如"looks good to me"缩写为"lgtm",短语中的每个单词的首字母组成缩写。现在给出一个字符串s,字符串s中包括一个或者多个单词,单词之间以空格分割,请输出这个字符串的…...
2024/4/15 3:18:18 - JavaScript练习
文章目录输入校验网页中的计算器切换图片 输入校验 <!DOCTYPE html> <html><head><meta charset="utf-8"><title>用户输入校验</title><style type="text/css">img {width: 20px;height: 20px;display: none;}&…...
2024/4/17 11:35:26 - 测试疲劳期如何调整
最近负责公司一个产品的全部算法的测试,大概总共有10多个算法,从2019年年底开始投入测试,一直测试到现在(2020年6月中旬),已经测试了6个月。一开始测试的时候有很多新鲜感,后期越来越疲劳了,没有发现的bug的灵感了。如果遇到测试疲劳期,可以跟负责人申请测试其他业务或…...
2024/4/15 3:18:17 - spring教程2- spring基于注解的IOC
spring教程2: spring基于注解的IOC 1. spring中的常用注解 原来的xml配置 <bean id="accountService" class="com.itheima.service.impl.AccountServiceImpl" scope="" init-method="" destroy-method=""><pro…...
2024/4/15 3:18:14
最新文章
- Docker数据管理+镜像的创建
Docker容器数据管理方式 数据卷 数据卷是一个供容器使用的特殊目录,位于容器中,可将宿主的目录挂载到数据卷上,对数据卷的修改操作立即可见,并且更新数据不会影响镜像,从而实现数据在宿主机与容器之间的迁移。数据卷…...
2024/4/28 3:14:55 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/3/20 10:50:27 - 【Godot4自学手册】第三十五节摇杆控制开门
本节主要实现,在地宫墙壁上安装一扇门,在核实安装一个开门的摇杆,攻击摇杆,打开这扇门,但是只能攻击一次,效果如下: 一、添加完善节点 切换到underground场景,先将TileMap修改一下…...
2024/4/26 19:55:01 - Docke搭建Lidarr
Lidarr 是一个基于音乐的下载管理器,它可以监控多个 RSS 订阅源以查找用户指定类型的音乐并与支持的下载客户端协同工作。Lidarr 旨在自动化音乐下载过程,并整合到用户的音乐库中。它可以搜索歌曲,自动下载和整理音乐文件,更新元数…...
2024/4/22 18:24:51 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/4/26 18:09:39 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/4/26 20:12:18 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/4/26 23:05:52 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/4/27 4:00:35 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/4/27 17:58:04 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/4/27 14:22:49 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/4/28 1:28:33 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/4/27 9:01:45 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/4/27 17:59:30 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/4/25 18:39:16 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/4/28 1:34:08 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/4/26 19:03:37 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/4/28 1:22:35 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/4/25 18:39:14 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/4/26 23:04:58 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/4/27 23:24:42 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/4/25 18:39:00 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/4/26 19:46:12 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/4/27 11:43:08 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/4/27 8:32:30 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57