小编Dav*_*vid的帖子

熊猫:群体中最大值和最小值之间的差异

给定一个看起来像这样的数据框

GROUP VALUE
  1     5
  2     2
  1     10
  2     20
  1     7
Run Code Online (Sandbox Code Playgroud)

我想计算每组中最大值和最小值之间的差异.也就是说,结果应该是

GROUP   DIFF
  1      5
  2      18
Run Code Online (Sandbox Code Playgroud)

在熊猫中这样做的简单方法是什么?

在Pandas中为大约200万行和100万个组的数据帧执行此操作的快速方法是什么?

python numpy pandas

29
推荐指数
3
解决办法
1万
查看次数

在Python Numpy中从两个数组创建指标矩阵

给定两个向量,我想创建一个指标矩阵.例如,给定a=np.array([5,5,3,4,4,4]),b=np.array([5,4,3])结果应该是

   5 4 3

5  1 0 0
5  1 0 0
3  0 0 1
4  0 1 0
4  0 1 0
4  0 1 0
Run Code Online (Sandbox Code Playgroud)

实现这一目标的最简单方法是什么?

python numpy

8
推荐指数
1
解决办法
1140
查看次数

Pandas:写入带有 Windows 行结尾的 CSV 文件

例子:

import pandas as pd
df = pd.DataFrame({'A':[1,2], 'B':[3,4]})
df.to_csv('test.csv', line_terminator='\r\n')
Run Code Online (Sandbox Code Playgroud)

给文件

,A,B\r
\r\n
0,1,3\r
\r\n
1,2,4\r
\r\n
Run Code Online (Sandbox Code Playgroud)

然而,我想要

,A,B\r\n
0,1,3\r\n
1,2,4\r\n
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点(即,\r\n而不是\r\r\n)。我的操作系统是 Windows 10。

python csv pandas

7
推荐指数
1
解决办法
9603
查看次数

加快熊猫康明/ cummax

对于我的许多团队的用例,熊猫cummincummax函数似乎真的很慢.我怎样才能加快它们的速度?

更新

import pandas as pd
import numpy as np

from collections import defaultdict

def cummax(g, v):
    df1 = pd.DataFrame(g, columns=['group'])
    df2 = pd.DataFrame(v)
    df = pd.concat([df1, df2], axis=1)

    result = df.groupby('group').cummax()
    result = result.values
    return result


def transform(g, v):
    df1 = pd.DataFrame(g, columns=['group'])
    df2 = pd.DataFrame(v)
    df = pd.concat([df1, df2], axis=1)

    result = df.groupby('group').transform(lambda x: x.cummax())
    result = result.values
    return result

def itertuples(g, v):
    df1 = pd.DataFrame(g, columns=['group'])
    df2 = pd.DataFrame(v)
    df = pd.concat([df1, df2], …
Run Code Online (Sandbox Code Playgroud)

python performance numpy pandas pandas-groupby

7
推荐指数
2
解决办法
1452
查看次数

熊猫:与先前价值的差异

给定一个看起来像这样的熊猫数据框

GROUP   VALUE    MASK
  1        5     false
  2       10     false
  2       20     false
  1        7     true
  3        17    false
  3        18    false
  1        100   false
  1        200   true
Run Code Online (Sandbox Code Playgroud)

对于MASK为真的每一行,我想得到与该组中先前值的差,即结果应为

VALUE DIFF
  7      2
  200  100
Run Code Online (Sandbox Code Playgroud)

如何在Pandas中计算?

如何为具有约200万行和100万组的大型数据帧快速计算出该值?

python pandas

5
推荐指数
1
解决办法
736
查看次数

4
推荐指数
1
解决办法
2911
查看次数

标签 统计

python ×6

pandas ×4

numpy ×3

csv ×1

matplotlib ×1

pandas-groupby ×1

performance ×1