我有一个元组列表,我试图将其转换为数据帧。 该列表如下所示:
Handler
我希望每个元组的左边部分代表列,右边代表值。在这种情况下,只有一行作为索引,因为我们只有一行数据
ATM,我并不真正关心索引的标签(不过,我更喜欢它是' AA')
我获得欲望结果的尝试是: 首先创建一个数据框
data =
['Previous Close', '38.08'],
['Open', '38.23'],
['Bid', '37.67 x 100'],
['Ask', '38.16 x 500'],
["Day's Range", '37.35 - 38.25'],
['52 Week Range', '23.50 - 40.92']
产生:
df = pd.DataFrame(data)
然后我尝试使用pivot来获取第0列中的值作为我的列名,将第1列中的值作为第1列的值。它在一定程度上起作用:
0 1
0 Previous Close 38.08
1 Open 38.23
2 Bid 37.67 x 100
3 Ask 38.16 x 500
4 Day's Range 37.35 - 38.25
但我有太多行。
df.pivot( columns = 0, values =1)
我只想要一行,因为只有一行数据。
答案 0 :(得分:1)
设置
data = [
['Previous Close', '38.08'],
['Open', '38.23'],
['Bid', '37.67 x 100'],
['Ask', '38.16 x 500'],
["Day's Range", '37.35 - 38.25'],
['52 Week Range', '23.50 - 40.92']
]
选项1
pd.DataFrame(data).set_index(0).T
0 Previous Close Open Bid Ask Day's Range 52 Week Range
1 38.08 38.23 37.67 x 100 38.16 x 500 37.35 - 38.25 23.50 - 40.92
选项2
c, v = list(zip(*data))
pd.DataFrame([v], columns=c)
Previous Close Open Bid Ask Day's Range 52 Week Range
0 38.08 38.23 37.67 x 100 38.16 x 500 37.35 - 38.25 23.50 - 40.92
选项3
Python 3解包
这适用于更多行
c, *v = list(zip(*data))
pd.DataFrame(v, columns=c)
Previous Close Open Bid Ask Day's Range 52 Week Range
0 38.08 38.23 37.67 x 100 38.16 x 500 37.35 - 38.25 23.50 - 40.92