[英]Pivot table and merge column with headers
I have DataFrame as below: 我有如下DataFrame:
Ranges Relative_17-Sep Relative_17-Oct Relative_17-Nov
<=20% 0.65 0.36 0.29
>20% 99.35 99.64 99.71
I am trying to find a way to convert this to : 我正在尝试找到一种将其转换为:
"Sep17<=20%" "Sep17>20%" "Oct17<=20%" "Oct17>20%" "Nov17<=20%" "Nov17>20%"
0.65 99.35 0.36 99.64 0.29 99.71
Any help in this. 任何帮助。
Thanks 谢谢
Option 1 选项1
melt
v = df.melt('Ranges')
df = pd.DataFrame(
v['value'].values,
index=v['variable'].str.split('_').str[-1] + v['Ranges']
).T
df
17-Sep<=20% 17-Sep>20% 17-Oct<=20% 17-Oct>20% 17-Nov<=20% 17-Nov>20%
0 0.65 99.35 0.36 99.64 0.29 99.71
Option 2 选项2
Modify df.columns
, followed by a stack
ing operation. 修改df.columns
,然后进行stack
操作。
df.columns = df.columns.str.split('_').str[-1]
v = df.set_index('Ranges').stack()
df = pd.DataFrame(
v.values,
index=v.index.get_level_values(1) + v.index.get_level_values(0)
).T
df
17-Sep<=20% 17-Oct<=20% 17-Nov<=20% 17-Sep>20% 17-Oct>20% 17-Nov>20%
0 0.65 0.36 0.29 99.35 99.64 99.71
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.