Python 数据帧的行和返回零。(当只有几行中有N/As时)

Python 数据帧的行和返回零。(当只有几行中有N/As时),python,pandas,dataframe,sum,row,Python,Pandas,Dataframe,Sum,Row,它返回一个由0.0组成的列,显然不是。理想情况下,我需要每行的总和,当该行中有N/A或任何其他文本时,返回N/A。 非常感谢。用于删除数据帧中的所有字符串。 试试这个,我只获取了你的一部分数据 df['total'] =df.sum(axis=1) print(df.tail(5)) Apr 2015 May 2015 Jun 2015 Jul 2015 \ Redmond, WA 21.2594 2

它返回一个由0.0组成的列,显然不是。理想情况下,我需要每行的总和,当该行中有N/A或任何其他文本时,返回N/A。 非常感谢。

用于删除数据帧中的所有字符串。 试试这个,我只获取了你的一部分数据

df['total'] =df.sum(axis=1)
print(df.tail(5))   
                  Apr 2015 May 2015          Jun 2015          Jul 2015  \
Redmond, WA        21.2594  21.0405  Division by zero  Division by zero   
Plantation, FL     23.8435  25.0725            28.834            23.527   
Lawrenceville, GA  10.7847   10.161           11.7116           14.7928   
Highland Park, IL  21.2594  21.0405           21.1542           21.5423   
Beaverton, OR          n/a      n/a               n/a               n/a   

                           Aug 2015          Sep 2015          Oct 2015  \
Redmond, WA        Division by zero  Division by zero  Division by zero   
Plantation, FL              23.6495             20.69           21.2267   
Lawrenceville, GA           14.1778           12.4531           10.8317   
Highland Park, IL           20.6783           21.0254  Division by zero   
Beaverton, OR                   n/a  Division by zero  Division by zero   

                           Nov 2015          Dec 2015          Jan 2016  \
Redmond, WA        Division by zero  Division by zero  Division by zero   
Plantation, FL                  n/a               n/a               n/a   
Lawrenceville, GA            10.423           10.3803               n/a   
Highland Park, IL  Division by zero  Division by zero  Division by zero   
Beaverton, OR      Division by zero  Division by zero  Division by zero   

                           Feb 2016          Mar 2016  total  
Redmond, WA        Division by zero  Division by zero    0.0  
Plantation, FL                  n/a               n/a    0.0  
Lawrenceville, GA               n/a               n/a    0.0  
Highland Park, IL  Division by zero  Division by zero    0.0  
Beaverton, OR      Division by zero  Division by zero    0.0  

在您的问题中发布
print(df.head(10))
的输出,选择它并按
Ctrl+K
。你忘了问一个问题;)非常感谢你。但我不能将所有文本都转换为零,因为如果缺少数据,添加数字没有任何意义,我只想显示它们缺少,所以当该行中有N/A或任何其他文本时,返回N/A。我该怎么做?检查我是否已更新答案您可以在
replace
中将缺少的值表示为
N/A
。这在“总计”列中有效,当那一行有一个N/a时,它仍然返回一个数字。好的,
df.sum
add
skipna=False
中只有一个微小的变化。它可以完美地工作,就像你想检查它一样。因为我在所有行中都有
N/a
,它在
total
中只显示
N/a
。所以对你来说,它会像预期的那样工作。它不再工作了。我不知道为什么它总是给我零分。我应该使用df.convert\u对象(convert\u numeric=True)
df
Out[35]: 
   Apr 2015  May 2015          Jun 2015          Jul 2015          Aug 2015  
    0   21.2594   21.0405  Division by zero  Division by zero  Division by zero   
    1       NaN   23.8435           25.0725               NaN               NaN   
    2   21.2594   21.0405  Division by zero  Division by zero  Division by zero   
    3       NaN   23.8435           25.0725               NaN               NaN   
    4   21.2594   21.0405  Division by zero  Division by zero               n/a   
    5       NaN   23.8435           25.0725               NaN               NaN 



           Sep 2015          Oct 2015          Nov 2015          Dec 2015  
0  Division by zero  Division by zero  Division by zero  Division by zero   
1               NaN               NaN               NaN               NaN   
2  Division by zero  Division by zero  Division by zero  Division by zero   
3               NaN               NaN               NaN               NaN   
4               n/a               n/a  Division by zero  Division by zero   
5               NaN               NaN               NaN               NaN   

           Jan 2016  Feb 2016  Mar 2016  total  
0  Division by zero       NaN       NaN    NaN  
1               NaN       NaN       NaN    NaN  
2  Division by zero       NaN       NaN    NaN  
3               NaN       NaN       NaN    NaN  
4  Division by zero       NaN       NaN    NaN  
5               NaN       NaN       NaN    NaN  

Out[46]:df.replace('Division by zero|n/a','N/A',regex=True,inplace =True)
    df
Out[59]: 
   Apr 2015  May 2015 Jun 2015 Jul 2015 Aug 2015 Sep 2015 Oct 2015 Nov 2015
     0   21.2594   21.0405      N/A      N/A      N/A      N/A      N/A      N/A   
1       NaN   23.8435  25.0725      NaN      NaN      NaN      NaN      NaN   
2   21.2594   21.0405      N/A      N/A      N/A      N/A      N/A      N/A   
3       NaN   23.8435  25.0725      NaN      NaN      NaN      NaN      NaN   
4   21.2594   21.0405      N/A      N/A      N/A      N/A      N/A      N/A   
5       NaN   23.8435  25.0725      NaN      NaN      NaN      NaN      NaN   

  Dec 2015 Jan 2016  Feb 2016  Mar 2016  total  
0      N/A      N/A       NaN       NaN    NaN  
1      NaN      NaN       NaN       NaN    NaN  
2      N/A      N/A       NaN       NaN    NaN  
3      NaN      NaN       NaN       NaN    NaN  
4      N/A      N/A       NaN       NaN    NaN  
5      NaN      NaN       NaN       NaN    NaN 




Out[50]: df['total']=df.sum(axis=1,skipna=False)

   df
Out[80]: 
   Apr 2015  May 2015 Jun 2015 Jul 2015 Aug 2015 Sep 2015 Oct 2015 Nov 2015 
0   21.2594   21.0405      N/A      N/A      N/A      N/A      N/A      N/A   
1       NaN   23.8435  25.0725      NaN      NaN      NaN      NaN      NaN   
2   21.2594   21.0405      N/A      N/A      N/A      N/A      N/A      N/A   
3       NaN   23.8435  25.0725      NaN      NaN      NaN      NaN      NaN   
4   21.2594   21.0405      N/A      N/A      N/A      N/A      N/A      N/A   
5       NaN   23.8435  25.0725      NaN      NaN      NaN      NaN      NaN   

  Dec 2015 Jan 2016  Feb 2016  Mar 2016  total  
0      N/A      N/A       NaN       NaN    NaN  
1      NaN      NaN       NaN       NaN    NaN  
2      N/A      N/A       NaN       NaN    NaN  
3      NaN      NaN       NaN       NaN    NaN  
4      N/A      N/A       NaN       NaN    NaN  
5      NaN      NaN       NaN       NaN    NaN