Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 当我试图处理pandas中缺少的值时,有些方法不起作用_Python 3.x_Pandas_Dataframe_Nan_Missing Data - Fatal编程技术网

Python 3.x 当我试图处理pandas中缺少的值时,有些方法不起作用

Python 3.x 当我试图处理pandas中缺少的值时,有些方法不起作用,python-3.x,pandas,dataframe,nan,missing-data,Python 3.x,Pandas,Dataframe,Nan,Missing Data,我试图处理数据集中缺少的一些值。这是我用来学习的教程的第一部分。下面是我用来读取数据的代码 import pandas as pd import numpy as np questions = pd.read_csv("./archive/questions.csv") print(questions.head()) 这就是我的数据 这些是我用来处理缺失值的方法。他们都没有工作 questions.replace(to_replace = np.nan, value

我试图处理数据集中缺少的一些值。这是我用来学习的教程的第一部分。下面是我用来读取数据的代码

import pandas as pd
import numpy as np

questions = pd.read_csv("./archive/questions.csv")

print(questions.head())
这就是我的数据

这些是我用来处理缺失值的方法。他们都没有工作

questions.replace(to_replace = np.nan, value = -99)
questions = questions.fillna(method ='pad')
questions.interpolate(method ='linear', limit_direction = 'forward')
然后我尝试删除缺少值的行。他们也没有一个人在工作。它们都返回空数据帧

questions.dropna()
questions.dropna(how = "all")
questions.dropna(axis = 1)
我做错了什么

编辑:

来自
questions.head()的值

字典形式的
questions.head()
中的值

{'Id': {0: 1, 1: 4, 2: 6, 3: 8, 4: 9}, 'CreationDate': {0: '2008-07-31T21:26:37Z', 1: '2008-07-31T21:42:52Z', 2: '2008-07-31T22:08:08Z', 3: '2008-07-31T23:33:19Z', 4: '2008-07-31T23:40:59Z'}, 'ClosedDate': {0: nan, 1: nan, 2: nan, 3: '2013-06-03T04:00:25Z', 4: nan}, 'DeletionDate': {0: '2011-03-28T00:53:47Z', 1: nan, 2: nan, 3: '2015-02-11T08:26:40Z', 4: nan}, 'Score': {0: 1, 1: 458, 2: 207, 3: 42, 4: 1410}, 'OwnerUserId': {0: nan, 1: 8.0, 2: 9.0, 3: nan, 4: 1.0}, 'AnswerCount': {0: 0.0, 1: 13.0, 2: 5.0, 3: 8.0, 4: 58.0}}
有关数据集的信息

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 17203824 entries, 0 to 17203823
Data columns (total 7 columns):
 #   Column        Dtype  
---  ------        -----  
 0   Id            int64  
 1   CreationDate  object 
 2   ClosedDate    object 
 3   DeletionDate  object 
 4   Score         int64  
 5   OwnerUserId   float64
 6   AnswerCount   float64
dtypes: float64(2), int64(2), object(3)
memory usage: 918.8+ MB

范围索引:17203824个条目,0到17203823
数据列(共7列):
#列数据类型
---  ------        -----  
0 Id int64
1创作对象
2闭式对象
3删除日期对象
4分int64
5所有者类别浮动64
6回答64
数据类型:float64(2)、int64(2)、object(3)
内存使用率:918.8+MB

能否尝试明确指定
并查看它是否有效?另一个fillna()在没有axis的情况下仍然可以工作,但是对于pad,您需要它,以便它知道如何填充缺少的值

>>> questions.fillna(method='pad', axis=1)
  Id          CreationDate            ClosedDate          DeletionDate Score OwnerUserId AnswerCount
0  1  2008-07-31T21:26:37Z  2008-07-31T21:26:37Z  2011-03-28T00:53:47Z     1           1           0
1  4  2008-07-31T21:42:52Z  2008-07-31T21:42:52Z  2008-07-31T21:42:52Z   458           8          13
2  6  2008-07-31T22:08:08Z  2008-07-31T22:08:08Z  2008-07-31T22:08:08Z   207           9           5
3  8  2008-07-31T23:33:19Z  2013-06-03T04:00:25Z  2015-02-11T08:26:40Z    42          42           8
4  9  2008-07-31T23:40:59Z  2008-07-31T23:40:59Z  2008-07-31T23:40:59Z  1410           1          58
只需在整个数据帧上应用
fillna()
,即可按预期工作

>>> questions.fillna('-')

   Id          CreationDate            ClosedDate          DeletionDate  Score OwnerUserId  AnswerCount
0   1  2008-07-31T21:26:37Z                     -  2011-03-28T00:53:47Z      1           -          0.0
1   4  2008-07-31T21:42:52Z                     -                     -    458           8         13.0
2   6  2008-07-31T22:08:08Z                     -                     -    207           9          5.0
3   8  2008-07-31T23:33:19Z  2013-06-03T04:00:25Z  2015-02-11T08:26:40Z     42           -          8.0
4   9  2008-07-31T23:40:59Z                     -                     -   1410           1         58.0

难道“NaN”实际上是一个字符串吗?尝试提问。替换('NaN','')尝试。不工作。你能发布
questions.head().values
erm,除非我在这里失明-你能发布questions.head()。
values
?此外,避免使用
img
作为输出,而是使用代码(这会使一切变得更容易)可以执行
questions.head().to_dict()
以及
questions.info()
。您的数据看起来有些不对劲。此外,您为csv文件提供的链接没有该文件。你能用
questions.head()
中的实际数据替换img吗其他的呢?
>>> questions.fillna('-')

   Id          CreationDate            ClosedDate          DeletionDate  Score OwnerUserId  AnswerCount
0   1  2008-07-31T21:26:37Z                     -  2011-03-28T00:53:47Z      1           -          0.0
1   4  2008-07-31T21:42:52Z                     -                     -    458           8         13.0
2   6  2008-07-31T22:08:08Z                     -                     -    207           9          5.0
3   8  2008-07-31T23:33:19Z  2013-06-03T04:00:25Z  2015-02-11T08:26:40Z     42           -          8.0
4   9  2008-07-31T23:40:59Z                     -                     -   1410           1         58.0