相关疑难解决方法(0)

Pandas数据帧获得每个组的第一行

我有一只DataFrame像熊猫一样的熊猫.

df = pd.DataFrame({'id' : [1,1,1,2,2,3,3,3,3,4,4,5,6,6,6,7,7],
                'value'  : ["first","second","second","first",
                            "second","first","third","fourth",
                            "fifth","second","fifth","first",
                            "first","second","third","fourth","fifth"]})
Run Code Online (Sandbox Code Playgroud)

我想通过["id","value"]对此进行分组,并得到每个组的第一行.

        id   value
0        1   first
1        1  second
2        1  second
3        2   first
4        2  second
5        3   first
6        3   third
7        3  fourth
8        3   fifth
9        4  second
10       4   fifth
11       5   first
12       6   first
13       6  second
14       6   third
15       7  fourth
16       7   fifth
Run Code Online (Sandbox Code Playgroud)

预期结果

    id   value
     1   first
     2   first
     3   first
     4  second
     5 …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

110
推荐指数
5
解决办法
11万
查看次数

PANDAS中类似SQL的窗口函数:Python Pandas Dataframe中的行编号

我来自sql背景,我经常使用以下数据处理步骤:

  1. 通过一个或多个字段对数据表进行分区
  2. 对于每个分区,在每个行中添加一个rownumber,将行按一个或多个其他字段排序,分析人员指定升序或降序

EX:

df = pd.DataFrame({'key1' : ['a','a','a','b','a'],
           'data1' : [1,2,2,3,3],
           'data2' : [1,10,2,3,30]})
df
     data1        data2     key1    
0    1            1         a           
1    2            10        a        
2    2            2         a       
3    3            3         b       
4    3            30        a        
Run Code Online (Sandbox Code Playgroud)

我正在寻找如何做PANDAS相当于这个SQL窗口函数:

RN = ROW_NUMBER() OVER (PARTITION BY Key1 ORDER BY Data1 ASC, Data2 DESC)


    data1        data2     key1    RN
0    1            1         a       1    
1    2            10        a       2 
2    2            2         a       3
3    3            3         b       1
4    3            30 …
Run Code Online (Sandbox Code Playgroud)

python numpy dataframe pandas

31
推荐指数
4
解决办法
4万
查看次数

在保留所有列的pandas中获取每个类别的前n个值

在进行了一些转换之后dataframe,我得到了以下内容,在这种情况下如何通过列获取前n条记录short_name并使用其他作为指标frequency.我读过这篇文章,但两个解决方案的问题是他们摆脱了列product_name,他们只保留了分组列,我需要保留它们.

short_name          product_id    frequency
Yoghurt y cereales  975009684     32
Yoghurt y cereales  975009685     21
Yoghurt y cereales  975009700     16
Yoghurt y Cereales  21097         16
Yoghurt Bebible     21329         68
Yoghurt Bebible     21328         67
Yoghurt Bebible     21500         31
Run Code Online (Sandbox Code Playgroud)

python pandas

6
推荐指数
3
解决办法
1989
查看次数

获取组的n个最大值

我正在寻找以下数据的每个组的前2个值。

Brand | Product | Rank
  A   |    P1   |   1000
      |    P2   |   1210
      |    P3   |   2000
      |    P4   |   600
      |    P5   |   756
      |    P6   |   867
  B   |    P1   |   549
      |    P2   |   1572
      |    P3   |   3490
      |    P4   |   2341
      |    P5   |   431
      |    P6   |   321
  C   |    P1   |   421
      |    P2   |   121
      |    P3   |   805
      |    P4   |   1202
      |    P5   |   4032
      |    P6   | …
Run Code Online (Sandbox Code Playgroud)

python sorting pandas

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

熊猫在每组中的前 n 个值

我有一个像

item      date       hour     value
  a         4         12       123
  a         6         11        54
  b         1          7       146
  c         8          1        97
  a         9          5        10
  c         4          5       114
  b         1          7       200
...       ...        ...       ...
Run Code Online (Sandbox Code Playgroud)

我想保持前10名itemvalue(丢弃其余的是确定),无论任何其他列。它们没有排序。

按照我的输入示例,由于我没有编写足够的内容来从每个项目中获得 10 个,如果我想要前 1 个,预期的输出将是这样的:

item      date       hour     value
  a         4         12       123
  c         4          5       114
  b         1          7       200
...       ...        ...       ...
Run Code Online (Sandbox Code Playgroud)

我看过这个答案,但我不确定如何告诉熊猫进行value计算。

python pandas

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

标签 统计

pandas ×5

python ×5

dataframe ×2

numpy ×1

sorting ×1