在Pandas我转换数据并想要命名列。
我目前的数据是:
Dict = {}
Instances = [/* an array of items where items is a dictionary that contains data */]
Instances.map((item) => {
Dict[item.name] = item.url;
});
转置并重命名列后,输出为:
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
答案 0 :(得分:3)
首先设置索引,然后再设置数据框
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
答案 1 :(得分:1)
您可以使用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
答案 2 :(得分:1)
首先通过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