numpy 数组作为熊猫数据帧管理的元素



我正在考虑一个熊猫数据帧。我想找到一种有效的方法,每次列的名称包含数字 4 并且列元素是数组时,都会创建第二个数据帧。

 import pandas as pd
 data = {"A4aa":[[1, 2,3,4]], "B":[12,],"B4bb":[[5, 6,7,8]]} 
 data1 = {"A0aa":[1],"A1aa":[2],"A2aa":[3],"A3aa":[4], "B":[12,],"B0bb":[5],"B1bb":[6],"B2bb":[7],"B3bb":[8]}  
 df = pd.DataFrame(data) 
 df1 = pd.DataFrame(data1)
        A4aa         B        B4bb
0   [1, 2, 3, 4]    12  [5, 6, 7, 8]
data1 = {"A0":[1],"A1":[2],"A2":[3],"A3":[4], "B":[12,],"B0":[5],"B1":[6],"B2":[7],"B3":[8]} 
 df1 = pd.DataFrame(data1)
   A0aa A1aa  A2aa  A3aa   B  B0bb  B1bb  B2bb   B3bb
0   1     2   3      4    12   5    6      7     8  
def f(df):
    def g(c):
        pre, *suf = c.split('4')
        if suf:
            return pd.DataFrame(df[c].tolist()).add_prefix(pre).add_suffix(''.join(suf))
        else:
            return df[c]
    return pd.concat(map(g, df), axis=1)        
f(df)
   A0aa  A1aa  A2aa  A3aa   B  B0bb  B1bb  B2bb  B3bb
0     1     2     3     4  12     5     6     7     8

最新更新