Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 熊猫重塑宽到长返回零结果_Python_Pandas_Reshape - Fatal编程技术网

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
是输出列的名称。这能改变吗?或者之后需要手动重命名。