由于单列文本导致的数据框标准偏差问题

问题描述

我有一个数据框,其中包含几行调查响应值 (1 - 5),我正在尝试为其获取标准偏差。

最后一列指示数据属于哪个调查组(列名称 = 受访者)。由于这些列包含文本而不是整数,因此标准差返回 NaN。 skipna=True 在这种情况下不起作用。我需要保留该列,因为分析将在单个散点图中比较每个组的响应。我似乎找不到一种方法可以让标准偏差忽略该列。由于上述原因,我不想删除该列。

正在使用的代码是:

df1['std dev']=df.std(skipna=True)
df1.head()

我不确定我可以添加什么来忽略 std 的“受访者”列。

编辑

我找到了一种解决方法,虽然并不理想,但它确实有效。

我将我的数据分成 2 个 Excel 工作表,在每个工作表中删除了有问题的列。然后执行我的标准偏差,将“响应者”列添加回每个数据帧并将它们合并到一个新的 DF 中。

解决方法

试试:

df.iloc[:,:-1].std()

在英语中,这意味着使用所有行,并使用除最后一列之外的所有行。

如果您想要每行的标准差,那么您需要:

df.iloc[:,:-1].std(axis=1)