Python 旋转数据帧,无数字类型,索引不唯一
我正在尝试将一些字符串数据转换为列,但使用起来很困难,因为我没有可以使用的唯一索引或多索引 样本格式Python 旋转数据帧,无数字类型,索引不唯一,python,pandas,pivot-table,Python,Pandas,Pivot Table,我正在尝试将一些字符串数据转换为列,但使用起来很困难,因为我没有可以使用的唯一索引或多索引 样本格式 索引位置字段值 1地点1名字A 2位置1姓氏B 3位置1 dob C 4位置1电子邮件D 5地点1标题E 6地址1地址1 F 7位置1地址2 G 8位置1地址3 H 9地点1名字I 10位置1姓氏J 11位置1 dob K 12位置1电子邮件L 13地点1标题M 14位置1地址1 N 15位置1地址2 O 16位置1地址3 P 40地点2名字Q 41位置2姓氏R 42位置2 dob S 43位
索引位置字段值
1地点1名字A
2位置1姓氏B
3位置1 dob C
4位置1电子邮件D
5地点1标题E
6地址1地址1 F
7位置1地址2 G
8位置1地址3 H
9地点1名字I
10位置1姓氏J
11位置1 dob K
12位置1电子邮件L
13地点1标题M
14位置1地址1 N
15位置1地址2 O
16位置1地址3 P
40地点2名字Q
41位置2姓氏R
42位置2 dob S
43位置2电子邮件T
44地点2标题U
45位置2地址1 V
46位置2地址2 W
47 location2 address3 X
您需要使用代理列进行轴心旋转。这里有一个使用cumsum
+set\u index
+unstack
的解决方案
v = df.set_index(['location', 'field', df.field.eq('firstName').cumsum()]).unstack(-2)
v.index = v.index.droplevel(-1)
v.columns = v.columns.droplevel(0)
field address1 address2 address3 dob email firstName \
location
location1 F G H C D A
location1 N O P K L I
location2 V W X S T Q
field lastName title
location
location1 B E
location1 J M
location2 R U