我有以下數據框:大熊貓將列名的變量有效
{'2003-12-02LVDT0023': {0: 2.3407617000000001e-06,
1: 2.3402380999999998e-06,
2: 2.3410341000000001e-06,
3: 2.3417209999999999e-06,
4: 2.3419282000000002e-06,
5: 2.3420178e-06,
6: 2.3424012999999999e-06},
'2003-12-02LVDT0024': {0: 2.3612594999999998e-06,
1: 2.3609533999999999e-06,
2: 2.3611187000000002e-06,
3: 2.3618049e-06,
4: 2.3621773999999998e-06,
5: 2.3626039000000002e-06,
6: 2.3625455000000001e-06},
'2003-12-02LVDT0025': {0: 2.3660825000000001e-06,
1: 2.3660903000000001e-06,
2: 2.3659481000000001e-06,
3: 2.3661921e-06,
4: 2.3668378999999998e-06,
5: 2.3671985e-06,
6: 2.3679653999999999e-06},
'2003-12-02force0023': {0: 2.3664842999999999e-06,
1: 2.3664650000000002e-06,
2: 2.3666738999999999e-06,
3: 2.3665972999999999e-06,
4: 2.3670195e-06,
5: 2.3675174999999997e-06,
6: 2.3677449e-06},
'2003-12-02force0024': {0: 2.3680921e-06,
1: 2.3682342000000004e-06,
2: 2.3684212999999998e-06,
3: 2.3688697000000001e-06,
4: 2.3694958999999999e-06,
5: 2.3698856000000002e-06,
6: 2.3702362000000002e-06},
'2003-12-02force0025': {0: 2.3684941000000001e-06,
1: 2.3691163999999997e-06,
2: 2.3693348999999999e-06,
3: 2.3694661000000002e-06,
4: 2.3701970999999998e-06,
5: 2.3704627000000002e-06,
6: 2.3707437000000001e-06}}
我想重塑數據框的方式,我做的對每個數據點一列(標題中的最後幾位)以及每個數據點兩個附加列(lvdt
和force
)。數據幀本身有40000行。
什麼部分地與這個小數據的工作原理是:
# I cannot use `inplace=True` here
new = new.unstack().reset_index()
new['id'] = new.level_0.str[-4:]
new = new.convert_objects(convert_numeric=True)
new
這給了我列作爲新列的最後四位數字。從這裏開始,我可能會以某種方式重新塑造數據框。但是,在原始數據幀上執行此操作會產生15640000行新的數據幀,並消耗額外的1 GB RAM。
我要的是一個數據幀,如:
index force lvdt id
0 0.002 0.002 23
1 0.002 0.002 24
最後一張桌子是你想要的,而你只是希望它更有效率?或者你想要不同的東西?如果是後者,只需以文本/表格的形式寫出所需結果即可。 – JohnE