通过列中的名称切片重塑DataFrame

时间:2019-07-12 07:00:08

标签: python pandas

我无法弄清楚如何用大量变量,纬度和经度(例如

)重塑巨大的DataFrame
            Var1_(lat1, len1) Var2_(lat1, len1)
date1 date2                                    
d1    d5                   v1                v5
d2    d6                   v2                v6
d3    d7                   v3                v7
d4    d8                   v4                v8

并将其重塑为

                      Var1 Var2
date1 date2 lat  len           
d1    d5    lat1 len1   v1   v5
d2    d6    lat1 len1   v2   v6
d3    d7    lat1 len1   v3   v7
d4    d8    lat1 len1   v4   v8

也可以通过lat和len值来索引这些变量。

当然,这只是一个小例子,但我正在寻找对更多变量(值始终在“ _”之前)以及纬度和经度(值始终在括号之间并以逗号分隔)有效的东西。 / p>

1 个答案:

答案 0 :(得分:1)

先创建MultiIndex,然后删除(),然后再通过_,删除https://github.com/drduh/macOS-Security-and-Privacy-Guide#admin-and-standard-user-accounts,以便通过最后设置的索引Series.str.split重塑由DataFrame.stack命名:

df.columns = df.columns.str.replace('\(|\)','').str.split('_|, ', expand=True)
df = df.stack(level=[1,2]).rename_axis(('date1','date2','lat','len'))
print (df)

                      Var1 Var2
date1 date2 lat  len           
d1    d5    lat1 len1   v1   v5
d2    d6    lat1 len1   v2   v6
d3    d7    lat1 len1   v3   v7
d4    d8    lat1 len1   v4   v8