Pandas: 将数据帧的索引从嵌套字典中拆分出来,并在新的拆分列中添加一个数字

Pandas: split the index of a dafaframe out of a nested dictionary and add a number to the new split column

假设我有这个小的嵌套字典:

dict = {'f1': {'A 1': 'A1', 'B 1': 'B1'}, 'f2': {'A 1': 'A2', 'B 1': 'B2'}, "f3": {'A 1': 'A3', 'B 1': 'B3'}}

有: df = pd.DataFrame.from_dict(dict)

它输出:

     f1  f2  f3
A 1  A1  A2  A3
B 2  B1  B2  B3

我想使用“”分隔符拆分索引,并将 X 编号添加到索引的第二个条目。 期望的输出,x=1 应该是:

L N  f1  f2  f3
A 2  A1  A2  A3
B 3  B1  B2  B3

我试过:

df.index = df.index.str.split(" ")

输出为:

        f1  f2  f3
[A, 1]  A1  A2  A3
[B, 2]  B1  B2  B3

从这里我不知道如何增加索引中的数字。

谢谢!

试试这个:

df.index = df.index.str.split(' ')
df.index = df.index.str[0] + ' ' + (df.index.str[1].astype(int) + 1).astype(str)

输出:

>>> df
     f1  f2  f3
A 2  A1  A2  A3
B 3  B1  B2  B3

您也可以使用编程方式:

X = zip(*((a, int(b)+1) for a,b in df.index.map(str.split)))
df.index = pd.MultiIndex.from_arrays(X, names=['L', 'N'])

输出:

     f1  f2  f3
L N            
A 2  A1  A2  A3
B 3  B1  B2  B3