小编glp*_*psx的帖子

在元素计数不同于 1 的组上过滤 DataFrame

我正在使用具有以下结构的 DataFrame:

import pandas as pd

df = pd.DataFrame({'group':[1,1,1,2,2,2,2,3,3,3],
                   'brand':['A','B','X','C','D','X','X','E','F','X']})

print(df)

   group brand
0      1     A
1      1     B
2      1     X
3      2     C
4      2     D
5      2     X
6      2     X
7      3     E
8      3     F
9      3     X
Run Code Online (Sandbox Code Playgroud)

我的目标是仅查看与一个品牌X相关联的组。由于第 2 组有两个观察值等于品牌X,因此应该从结果数据帧中过滤掉它。

输出应如下所示:

   group brand
0      1     A
1      1     B
2      1     X
3      3     E
4      3     F
5      3     X
Run Code Online (Sandbox Code Playgroud)

我知道我应该groupby在组列上做一个,然后过滤那些计数X不同于 1 的组。过滤部分是我努力的地方。任何帮助,将不胜感激。

python dataframe pandas

10
推荐指数
3
解决办法
300
查看次数

将样式应用于 pandas DataFrame 行

我正在使用包含客户信息的数据集实验/学习Python。

DataFrame 结构如下(这些是组成记录):

import pandas as pd

df1 = pd.DataFrame({'left_name' : ['James', 'Mary', 'John', 'Patricia'],
                    'left_age' : [30, 37, 30, 35], 
                    'right_name' : ['Robert', 'Jennifer', 'Michael', 'Linda'], 
                    'right_age' : [30, 31, 38, 35]})
print(df1)

  left_name  left_age right_name  right_age
0     James        30     Robert         30
1      Mary        37   Jennifer         31
2      John        30    Michael         38
3  Patricia        35      Linda         35
Run Code Online (Sandbox Code Playgroud)

将该transpose方法应用到df1,我们得到以下视图:

df2 = df1.T
print(df2)

                 0         1        2         3
left_name    James      Mary     John  Patricia
left_age        30        37       30 …
Run Code Online (Sandbox Code Playgroud)

python formatting dataframe pandas pandas-styles

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

有条件的最长路径查找

我正在尝试解决 Python/Pandas 中的一个问题,我认为这与最长路径算法密切相关。我正在使用的 DataFrame 具有以下结构:

import numpy as np 
import pandas as pd

data = {
    "cusID": ["001", "001", "001", "001", "001", "001", "002", "002", "002"],
    "start": ["A", "B", "C", "D", "A", "E", "B", "C", "D"],
    "end": ["B", "C", "D", "A", "E", "A", "C", "D", "E"]
}
df = pd.DataFrame(data)
print(df)

  cusID start end
0   001     A   B
1   001     B   C
2   001     C   D
3   001     D   A
4   001     A   E
5   001     E   A
6   002 …
Run Code Online (Sandbox Code Playgroud)

python algorithm dataframe pandas

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

选择 DataFrame.set_index 中除一列之外的所有列

正如标题所示,我正在尝试选择除 中的一列之外的所有列DataFrame.set_index

我尝试了以下方法:

df = df.set_index(list(df.columns != 'cus_name'))
Run Code Online (Sandbox Code Playgroud)

cus_name系列是我想排除的系列。上面的代码引发了一个KeyError: True.

list(df.columns != 'cus_name')是一个布尔值列表[True, True, False, True, True, True, True, True, True, True, True, True],我需要的是一个列名称列表,除了cus_name.

我知道我可以在方法中显式输入我想要的列的完整列表set_index,但我在想是否有更有效的方法来做到这一点。

python pandas

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

熊猫分组并计算列的唯一值

我在 Pandas 查询方面遇到了一些困难,希望得到一些帮助。我正在使用的 DataFrame 如下:

data = {
    "id": ["A", "A", "A", "A", "A", "A", "B", "B"],
    "start": ["P1", "P2", "P3", "P4", "P1", "P5", "P1", "P3"],
    "finish": ["P2", "P3", "P4", "P1", "P5", "P1", "P3", "P5"],
    "order": [1, 2, 3, 4, 5, 6, 1, 2]
}
df = pd.DataFrame(data)
print(df)

  id start finish  order
0  A    P1     P2      1
1  A    P2     P3      2
2  A    P3     P4      3
3  A    P4     P1      4
4  A    P1     P5      5
5  A …
Run Code Online (Sandbox Code Playgroud)

python pandas pandas-groupby

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

属性错误:“float”对象没有属性“max”

这是我之前关于使用负值的特定条件标准化 Pandas DataFrame 列的文章的延续。

\n\n

我正在使用的数据框如下:

\n\n
import numpy as np\nimport pandas as pd\n\ndf = pd.DataFrame({\'key\' : [111, 222, 333, 444, 555, 666, 777, 888, 999],\n                   \'score1\' : [-1, 0, 2, -1, 7, 0, 15, 0, 1], \n                   \'score2\' : [2, 2, -1, 10, 0, 5, -1, 1, 0]})\n\nprint(df)\n\n   key  score1  score2\n0  111      -1       2\n1  222       0       2\n2  333       2      -1\n3  444      -1      10\n4  555       7       0\n5  666       0       5\n6  777      15      -1\n7  888       0       1\n8  999       1 …
Run Code Online (Sandbox Code Playgroud)

python function

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

Pandas groupby 并跨行应用聚合函数

groupby我在将海关功能应用于熊猫操作时遇到困难。假设我有以下 DataFrame 可以使用:

import pandas as pd

df = pd.DataFrame(
    {
        "id": [1, 1, 2, 2],
        "flag": ["A", "A", "B", "B"],
        "value1": [520, 250, 180, 360],
        "value2": [11, 5, 7, 2],
    }
)

print(df)

   id flag  value1  value2
0   1    A     520      11
1   1    A     250       5
2   2    B     180       7
3   2    B     360       2
Run Code Online (Sandbox Code Playgroud)

我需要对上面的 DataFrame 应用 4 个聚合函数,按id和分组flag。具体来说,对于每个idflag

  1. 计算 的平均值value1
  2. 计算总和value2
  3. 计算 …

python group-by pandas

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