Python 熊猫重塑宽到长返回零结果
我有一个熊猫数据帧,希望将其从宽格式改为长格式。 为什么我要尝试重塑:Python 熊猫重塑宽到长返回零结果,python,pandas,reshape,Python,Pandas,Reshape,我有一个熊猫数据帧,希望将其从宽格式改为长格式。 为什么我要尝试重塑: pd.wide_to_long(df, ['BEV'], i='GCD', j='BEV_age_perc', sep='_') 返回带有0结果的数据帧 如你所见: Id列为:GCD(已包含在索引中) BEV.*应重新设置为一列 EDU.*此处相同 数据帧示例: data_dict = {'GCD': {10101: 10101, 10201: 10201, 10301: 10301}, 'GEM_NAME': {1
pd.wide_to_long(df, ['BEV'], i='GCD', j='BEV_age_perc', sep='_')
返回带有0
结果的数据帧
如你所见:
- Id列为:
(已包含在索引中)GCD
应重新设置为一列BEV.*
此处相同EDU.*
data_dict = {'GCD': {10101: 10101, 10201: 10201, 10301: 10301},
'GEM_NAME': {10101: 'Eisenstadt',
10201: 'Rust',
10301: 'Breitenbrunn am Neusiedler See'},
'BEV_UNTER15_perc': {10101: 0.0009831950352137229,
10201: 0.006775210084033614,
10301: 0.005955463490419472},
'BEV_UEBER65_perc': {10101: 0.0012830346558817375,
10201: 0.013340336134453781,
10301: 0.013257379596064217},
'AUSL_STAATSB_perc': {10101: 0.0010041140785161426,
10201: 0.003046218487394958,
10301: 0.003521491455204557},
'EWTQ_15BIS64_perc': {10101: 0.004776514887385817,
10201: 0.03996848739495798,
10301: 0.03780424650440187},
'ALQ_15PLUS_perc': {10101: 0.00047416498152151175,
10201: 0.0021008403361344537,
10301: 0.0030554117037804246},
'EDU_15_SEK_perc': {10101: 0.004114078516142528,
10201: 0.03308823529411765,
10301: 0.03381667529777317},
'EDU_15_TER_perc': {10101: 0.001436440973432815,
10201: 0.004884453781512605,
10301: 0.006266183324702227},
'AUSPENDLER_perc': {10101: 0.0030681263510215465,
10201: 0.03156512605042017,
10301: 0.04049715173485241},
'PHH_perc': {10101: 0.4540129698068475,
10201: 0.42016806722689076,
10301: 0.4743656136716727},
'HH_SIZE_perc': {10101: 0.00014782790600376543,
10201: 0.0012079831932773108,
10301: 0.0010875194199896428},
'FAMILIEN_perc': {10101: 0.2707621504776515,
10201: 0.2935924369747899,
10301: 0.2988089073019161},
'UNT_perc': {10101: 0.09113729865420822,
10201: 0.0976890756302521,
10301: 0.07767995857068877},
'AST_perc': {10101: 0.12028449898891291,
10201: 0.11134453781512606,
10301: 0.08285862247540135},
'BESCH_AST_perc': {10101: 1.2270413499755946,
10201: 0.5057773109243697,
10301: 0.2687726566545831}}
df = pd.DataFrame(data_dict)
您需要将默认后缀更改为
pd.wide_to_long(df, ['BEV'], i='GCD', j='BEV_age_perc', sep='_',suffix='\w+')
太棒了(带后缀)。您对
['BEV','EDU']
的建议将为这两个选项创建一个单独的重塑列。但我需要分别将它们重塑为单个列。我想,在这里调用重塑两次是必要的。@GeorgHeiler当然,这是我的错,在这种情况下,您需要执行for循环内的操作,然后concat back或merge另外一件事:BEV_age\u perc
不是作为输出列创建的,但BEV
是输出列的名称。这能改变吗?或者之后需要手动重命名。