问题描述
我看了很多遍,并尝试了来自该站点的许多不同代码来帮助我解决问题。也许有人可以提出建议?
我希望那张桌子是正确的。我是 Stack Overflow 的新手,如果结果不正确,我很抱歉。我已经为此挣扎了几个小时。我终于在底部显示了我的 Total 行,但我不希望 NaN 显示在包含字符串的一列中。有人能告诉我在地球上简单地从这个数据框中的一个单元格中删除 NaN 需要什么吗?我已经无能为力了。
解决方法
您可以使用 fillna 用另一个值填充 NaN,例如,空字符串:
df['Gender'].fillna('',inplace=True)
或者,如果您更喜欢 'Other/Not Disclosed'
:
df['Gender'].fillna('Other/Not Disclosed',inplace=True)
在这两种情况下,当您打印 DataFrame 时,NaN
将不再存在。
还有其他方法可以处理 NaN
或缺失值;您可以查看here了解更多信息。
一种可能的解决方案(包括创建数据框):
import pandas as pd
import numpy as np
# create base of the dataframe
df = pd.DataFrame({'gender':['male','female','others'],'total':[484,81,11]})
# calculate percentage column
df['percentage'] = round(df['total']/df['total'].sum(),2)
# create SUM row
df.loc['TOTAL'] = df.select_dtypes(np.number).sum()
# replace string column 'gender' with empty string
df.loc['TOTAL','gender'] = ''
结果:
gender total percentage
0 male 484.0 0.84
1 female 81.0 0.14
2 others 11.0 0.02
TOTAL 576.0 1.00