Python pandas将列转换为列标题

时间:2018-07-05 14:09:52

标签: python pandas

我有一个字典列表,其中包含x和y。我想将x作为索引,将y作为列标题。我该怎么做?谢谢

import pandas

pt1 = {"x": 0, "y": 1, "val": 3,}
pt2 = {"x": 0, "y": 2, "val": 6,}

lst = [pt1, pt2]
print(lst)

# [{'x': 0, 'y': 1, 'val': 3}, {'x': 0, 'y': 2, 'val': 6}]

df = pandas.DataFrame(lst)
print(df)

#    val  x  y
# 0    3  0  1
# 1    6  0  2

如何将df转换为这种格式?谢谢。

#   1 2
# 0 3 6

2 个答案:

答案 0 :(得分:0)

您可以使用df.pivot

pt1 = {"x": 0, "y": 1, "val": 3,}
pt2 = {"x": 0, "y": 2, "val": 6,}
pt3 = {"x": 1, "y": 1, "val": 4,}
pt4 = {"x": 1, "y": 2, "val": 9,}

lst = [pt1, pt2, pt3, pt4]

df = pd.DataFrame(lst)

>>> df
   val  x  y
0    3  0  1
1    6  0  2
2    4  1  1
3    9  1  2


>>> df.pivot('x', 'y', 'val')

y  1  2
x      
0  3  6
1  4  9

答案 1 :(得分:0)

我只能想到使用两个for循环来做。还有更好的方法吗?谢谢。

x = 9, y = 23
x = 10, y = 23, z = 10
x = 10, y = 23, z = 20