小编RSM*_*RSM的帖子

将多个数据帧标头替换为具有两个标头信息的单个标头

我在 pandas 中使用了数据透视表,并获得了所需的数据帧格式,但现在我有两行标题。数据透视表后的结果数据框如下:

scenario     Actual               Plan
         LY_USD_AMT USD_AMT LY_USD_AMT USD_AMT
package
Africa            3       3          0       0
Brazil            1       1          1       1
Canada            1       1          1       1
Mexico            0       0          1       1
Run Code Online (Sandbox Code Playgroud)

我已设法使用以下命令删除标题的最后一行:

pd_piv.columns = pd_piv.columns.droplevel(-1)
Run Code Online (Sandbox Code Playgroud)

但此时,很难识别哪一行是哪一行,因为它呈现的列名称如下

LY_USD_AMT     USD_AMT     LY_USD_AMT     USD_AMT
Run Code Online (Sandbox Code Playgroud)

无论如何,有没有办法解决这个问题,也许可以结合两个标题并获得一个更简单的表格数据框,如下所示。我需要一个简单的表格,因为我要将其提供给仅识别一个标题行的外部系统。

ACTUAL_LY_USD_AMT     ACTUAL_USD_AMT     Plan_LY_USD_AMT     Plan_USD_AMT
Run Code Online (Sandbox Code Playgroud)

python pivot-table pandas

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

考虑列的唯一值时,pandas groupby 中的平均聚合

我有以下数据框:

df:
S0  S1  V1  V2  V3  V4
A   B   1   9   1   4
A   B   2   8   1   4
A   B   3   7   1   4
A   B   4   6   1   4
A   B   5   5   1   4
A   B   6   4   1   4
A   C   7   3   2   3
A   C   8   2   2   3
A   C   9   1   2   3
A   C   9   0   2   3
Run Code Online (Sandbox Code Playgroud)

我在这里进行分组以汇总值并获得下表:

df:
S0  S1  V1  V2  V3  V4
A   B   21  39 …
Run Code Online (Sandbox Code Playgroud)

python pandas pandas-groupby

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

使用枚举在熊猫数据框中进行循环

我有一个基本数据框,它是来自不干净数据的组的结果:

 df:

Name1   Value1  Value2
A       10      30
B       40      50
Run Code Online (Sandbox Code Playgroud)

我创建了一个列表如下:

Segment_list = df['Name1'].unique()
Segment_list 

array(['A', 'B'], dtype=object)

Run Code Online (Sandbox Code Playgroud)

现在我想遍历列表并找到每次迭代的 Value1 中的数量,所以我使用:

for Segment_list in enumerate(Segment_list):
    print(df['Value1'])

Run Code Online (Sandbox Code Playgroud)

但是我得到了两个值而不是一个一个。我只需要一次迭代的一个值。这可能吗?

Expected output:

10
40
Run Code Online (Sandbox Code Playgroud)

python enumerate dataframe pandas

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