Python 数据帧的行和返回零。(当只有几行中有N/As时)
它返回一个由0.0组成的列,显然不是。理想情况下,我需要每行的总和,当该行中有N/A或任何其他文本时,返回N/A。 非常感谢。用于删除数据帧中的所有字符串。 试试这个,我只获取了你的一部分数据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
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
addskipna=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