在python中将垂直表格转换为水平表格(展平表格)
该格式似乎有效,但仅适用于一个值,如何显示所有内容在python中将垂直表格转换为水平表格(展平表格),python,python-3.x,pandas,csv,pivot,Python,Python 3.x,Pandas,Csv,Pivot,该格式似乎有效,但仅适用于一个值,如何显示所有内容 非常感谢您的帮助。您可以使用熊猫的pivot\u表 df=df.pivot_表(索引=['Employe-id'], 列=['MemberID'、'firstname'、'lastname']) 要安装熊猫,请使用pip安装熊猫 然后首先通过read\u csv() 然后使用上述方法转换您可以使用设置索引()和取消堆栈(),但需要修复列,例如: In []: df = pd.read_csv(“data.csv”) df['ID'] = d
非常感谢您的帮助。您可以使用熊猫的
pivot\u表
df=df.pivot_表(索引=['Employe-id'],
列=['MemberID'、'firstname'、'lastname'])
要安装熊猫,请使用pip安装熊猫
然后首先通过read\u csv()
然后使用上述方法转换您可以使用
设置索引()
和取消堆栈()
,但需要修复列,例如:
In []:
df = pd.read_csv(“data.csv”)
df['ID'] = df['MemberID'] # Copy because you want it in the values too
df = df.set_index(['EmployeeID', 'MemberID']).unstack(level=1, fill_value='').sort_index(level=1, axis=1)
df.columns = df.columns.to_series().apply(lambda x: 'Member{}{}'.format(x[1], x[0]))
print(df)
Out[]:
Member1ID Member1Lastname Member1firstname Member2ID Member2Lastname Member2firstname Member3ID Member3Lastname Member3firstname
EmployeeID
1 1 Ann Anu 2 Ann Aju 3 vAnn Abi
2 1 John Cini 2 John Biju
3 1 Peter Mathew 2 Peter Joseph
但我认为,如果值中确实不需要MemberID(列名称中有MemberID),或者不介意使用多索引,则可以简化,然后:
In []:
df.set_index(['EmployeeID', 'MemberID']).unstack(level=1, fill_value='').swaplevel(axis=1).sort_index(axis=1)
Out[]:
MemberID 1 2 3
Lastname firstname Lastname firstname Lastname firstname
EmployeeID
1 Ann Anu Ann Aju Ann Abi
2 John Cini John Biju
3 Peter Mathew Peter Joseph
更多的信息会有所帮助。你说的是csv文件吗?您是否已经有了将其读入python字典并将其写回工作表的代码?是的,这是一个csv文件,我在将数据展平到上述格式时遇到了问题。不,我没有那个密码
In []:
df.set_index(['EmployeeID', 'MemberID']).unstack(level=1, fill_value='').swaplevel(axis=1).sort_index(axis=1)
Out[]:
MemberID 1 2 3
Lastname firstname Lastname firstname Lastname firstname
EmployeeID
1 Ann Anu Ann Aju Ann Abi
2 John Cini John Biju
3 Peter Mathew Peter Joseph