计算pandas数据帧行中的非空单元格并将计数添加为列

时间:2018-02-21 13:11:11

标签: python pandas dataframe data-analysis

使用Python,我想在pandas数据框中计算其中包含数据的行中的单元格数量,并在行的最左边单元格中记录计数< /强>

Frame showing count column on left as requested

1 个答案:

答案 0 :(得分:1)

要计算每行中缺少数据的单元格数,您可能希望执行以下操作:

df.apply(lambda x: x.isnull().sum(), axis='columns')

df替换为数据框的标签。

您可以使用以下内容创建新列并将计数写入其中:

df['MISSING'] = df.apply(lambda x: x.isnull().sum(), axis='columns')

将在数据框的最后(最右边)创建列。

您可以像这样移动列:

df = df[['Count', 'M', 'A', 'B', 'C']]

更新

我想知道你的遗失单元格实际上是空字符串而不是NaN值。你确定吗?我将您的屏幕截图复制到Excel工作簿中。我的完整代码如下:

df = pd.read_excel('count.xlsx', na_values=['', ' '])
df.head() # You should see NaN for empty cells
df['M']=df.apply(lambda x: x.isnull().sum(), axis='columns')
df.head() # Column M should report the values: first row: 0, second row: 1, third row: 2
df = df[['Count', 'M', 'A', 'B', 'C']]
df.head() # Column order should be Count, M, A, B, C

请注意na_values方法中的pd.read_excel参数。