我在 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) 我有以下数据框:
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) 我有一个基本数据框,它是来自不干净数据的组的结果:
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)