我有一个数据集,在那里我想将特定的字段名转换为值,同时将值反聚合为它们自己的唯一行,并执行长数据透视。
数据
# create DataFrame
data = {
"Start": ['8/1/2013', '8/1/2013'],
"Date": ['9/1/2013', '9/1/2013'],
"End": ['10/1/2013', '10/1/2013'],
"Area": ['NY', 'CA'],
"Final": ['3/1/2023', '3/1/2023'],
"Type": ['CC', 'AA'],
"Middle Stat": [226, 130],
"Low Stat": [20, 50],
"High Stat": [10, 0],
"Middle Stat1": [0, 0],
"Low Stat1": [0, 0],
"High Stat1": [0, 0],
"Re": [0,0],
"Set": [0,0],
"Set2": [0,0],
"Set3": [0,0],
}
渴望的
data = {'Start': ['8/1/2013', '8/1/2013', '8/1/2013', '8/1/2013', '8/1/2013', '8/1/2013'],
'Date': ['9/1/2013', '9/1/2013', '9/1/2013', '9/1/2013', '9/1/2013', '9/1/2013'],
'End': ['10/1/2013', '10/1/2013', '10/1/2013', '10/1/2013', '10/1/2013', '10/1/2013'],
'Area': ['NY', 'CA', 'NY', 'CA', 'NY', 'CA'],
'Final': ['3/1/2023', '3/1/2023', '3/1/2023', '3/1/2023', '3/1/2023', '3/1/2023'],
'Type': ['CC', 'AA', 'CC', 'AA', 'CC', 'AA'],
'Stat': [20, 50, 226, 130, 10, 0],
'Range': ['Low', 'Low', 'Middle', 'Middle', 'High', 'High'],
'Stat1': [0, 0, 0, 0, 0, 0],
'Re': [0, 0, 0, 0, 0, 0],
'Set': [0, 0, 0, 0, 0, 0],
'Set2': [0, 0, 0, 0, 0, 0],
'Set3': [0, 0, 0, 0, 0, 0]
}
正在执行
我使用的是SO成员提供的这个很棒的脚本,但关于如何调整它以创建所需输出的疑难解答。我需要包括所需输出中显示的所有列。
import janitor
(df
.pivot_longer(
index = slice('Start', 'Type'),
names_to = ("Range", ".value"),
names_sep = " ")
)
欢迎提出任何建议。