【问题标题】:Dataframe Standard Deviation issue due to a single column of text由于单列文本导致的数据框标准偏差问题
【发布时间】:2021-04-10 03:45:35
【问题描述】:

我有一个数据框,其中包含我试图获得标准偏差的调查响应值行 (1 - 5)。

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

正在使用的代码是:

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

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

编辑

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

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

【问题讨论】:

    标签: python pandas standard-deviation


    【解决方案1】:

    试试:

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

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

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

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

    【讨论】:

    • 传奇伙伴。我现在就试试。
    • 好吧,这真的很奇怪。如果我做display (df.iloc[:, :-2]),它就完美了。但是,如果我尝试df.iloc[:, :-2].std(),则没有任何变化。仍按原样显示数据框。
    • 您可能需要更详细地说明您拥有和想要的东西。
    • 完全可以理解。我实际上认为我想要的只是行不通,所以我解决了它。我将我的 excel 表拆分为 2,删除了 Respondants 列,添加了标准偏差,将 Respondants 列添加到两个 DF 中并合并到一个新的 DF 中。乔布斯是个好人!不过感谢您的帮助。
    猜你喜欢
    • 2020-03-28
    • 2019-04-01
    • 2021-10-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-16
    • 2012-12-03
    • 2023-03-25
    • 1970-01-01
    相关资源
    最近更新 更多