python - 枢轴/重塑熊猫数据框
问题描述
模拟 pandas 数据框以进行枢轴:
df = pd.DataFrame({'id': ['A','B','C'],
'year': [2012, 2014, 2016],
'val1': [1,2,3],
'val2': [5,6,7],
'val3': [9,10,11]})
我要旋转熊猫数据框以获得以下形状:
从根本上说,我要做的是将年份字段作为列而不是行值,并保留标签 val1、val2、val3。
解决方案
试试这个,这只是一种快速而肮脏的方法。不是最好的。
#Transpose Year and other columns
df1 = df[["year", "val1", "val2", "val3"]].T
#Set first row as header
new_header = df1.iloc[0]
df1 = df1[1:]
df1.columns = new_header
df1.reset_index(inplace=True)
#concat back with id
df = pd.concat([df[["id"]],df1],axis=1).rename(columns={"index": "value"})
df
Out[259]:
id value 2012 2014 2016
0 A val1 1 2 3
1 B val2 5 6 7
2 C val3 9 10 11
推荐阅读
- python - Python/Django 或 D3 中的自定义离散滑块
- powershell - 将对象转换为字符串数组 Powershell
- facebook - AccessToken.CurrentAccessToken.UserID 上的空引用错误
- google-oauth - OAuth2 和 Google API:关于访问令牌过期时间
- docker - Docker - 无法在 Kubernetes 集群上启动 Webpack 开发服务器
- python - 你如何乘以保持相同小数位的小数
- 3d - 对特定类别的多边形进行三角剖分
- javascript - 我似乎无法让我的论点传递给回调
- ios - Xamarin IOS:在捆绑包 NSBundle 中找不到名为“Main”的情节提要
- angular - 动态关闭选项卡时angular6表单输入值不正确