我有一个pandas数据框,看起来像这样:
给定行中的每个值要么是同一个数字,要么是一个NaN。我想计算dataframe中所有2列组合的平均值、中值和计数,其中两列都不是NaN。在
例如,上述数据帧的结果是:
AB: count: 1, mean: 7, median: 7
AC: count: 2, mean: 9.5, median: 9.5
BC: count: 2, mean: 9, median: 9
事实上,我的数据帧大约有50k行长,40列左右宽。在
如果你想知道,这是关于堆栈溢出开发人员调查的工作。Ami Tavory helped me get to this point.行是响应者。本例中的列是受访者告诉我们他们使用的编程语言。价值观就是你的年薪。我正在尝试确定哪种编程语言组合(也许是编码生态系统的代理)的回报最好。结果将在未来几周公布。我们真正的开发人员都在忙着构建真实的东西,所以我想我应该借此机会来戳你。我期待着你检查我的工作,当我们发布一个完整的数据转储在下个月左右。在
可以使用以下代码生成示例数据帧:
^{pr2}$
这应该行得通(它在您的示例上有效,但我还没有在更大的数据集上测试过):
你的例子给出了
^{pr2}$为每对列创建一个新的dataframe,并删除任何带有“NA”的内容,然后对该临时数据帧执行基本统计。也许有一种更有效的方法可以做到这一点,但是你的数据帧足够小,这不应该是个大问题。在
我试着让它对你来说有一个合理的可伸缩性,因此使用列表而不是在pandas中完成。我在熊猫身上看到的唯一好方法是需要大量的行操作,而在大熊猫身上这种操作非常慢。在这里添加属性相当容易——只需在数组中添加一个名为outarr的列,并在创建输出数据帧时将其命名。在
相关问题 更多 >
编程相关推荐