[英]Pandas how to transpose the data and add the column name
在Pandas中,我要转置数据并想命名列。
我当前的数据是:
alpha bravo charlie
0 public private public
1 prodA prodB prodB
2 100 200 300
在对列进行转置和重命名之后,输出为:
df.transpose()
df.columns = ["category", "product", "price"]
category product price
alpha public prodA 100
bravo private prodB 200
charlie public prodB 300
如何获得预期的输出,例如:
company category product price
alpha public prodA 100
bravo private prodB 200
charlie public prodB 300
只需先设置索引,然后再放置数据框
df.index = pd.Index(['category','product','price'],name='company')
df.T
company category product price
alpha public prodA 100
bravo private prodB 200
charlie public prodB 300
首先通过df.index.set_names
设置索引名称,然后应用reset_index
:
df.index = df.index.set_names('company')
df.columns = ['category', 'product', 'price']
df = df.reset_index()
# company category product price
# 0 alpha public prodA 100
# 1 bravo private prodB 200
# 2 charlie public prodB 300
您可以使用rename_axis和reset_index:
(
df.T
.set_axis(["category", "product", "price"], axis=1, inplace=False)
.rename_axis('company',axis=0)
.reset_index()
)
Out[124]:
company category product price
0 alpha public prodA 100
1 bravo private prodB 200
2 charlie public prodB 300
如果要保留公司作为索引:
(
df.T
.set_axis(["category", "product", "price"], axis=1, inplace=False)
.rename_axis('company',axis=0)
)
Out[125]:
category product price
company
alpha public prodA 100
bravo private prodB 200
charlie public prodB 300
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.