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
假设我有这个小的嵌套字典:
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