从总计一列的行中删除 NaN

Drop NaN's from row that totals one column

我看了好几遍,尝试了很多来自这个网站的不同代码来帮助我解决我的问题。也许有人可以提出建议?

我有一个如下所示的数据框:

我希望 table 结果是对的。我是 Stack Overflow 的新手,如果结果不正确,我深表歉意。我已经为此苦苦挣扎了几个小时。我终于在底部显示了我的总计行,但我不希望 NaN 显示在其中包含字符串的一列中。有人能告诉我从这个数据框中的 ONE CELL 中简单地删除 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