我看过几个类似的主题,但是他们对我的新帖子并没有真正帮助我。
我想从元组列表中创建以下df:
Values Total extra
label
Pictionary 0.000000 12
Chess 4.609929 12
Cluedo 8.421986 12
这是实现它的所有组件:
columns = ['Total, 'extra']
tups = [(u'Pictionary', 0.0, 12)
(u'Chess', 4.6099290780141837, 12)
(u'Cluedo', 8.4219858156028362, 12)]
我失败的尝试:
pd.DataFrame(tups, columns=columns)
错误信息:
AssertionError: 2 columns passed, passed data had 3 columns
我认为您必须将一个值添加到列list
,然后尝试list comprehension
再set_index
添加第一列,如果需要的话,请输入index
:
import pandas as pd
columns = ['label', 'Total', 'extra']
tups = [(u'Pictionary', 0.0, 12),
(u'Chess', 4.6099290780141837, 12),
(u'Cluedo', 8.4219858156028362, 12)]
df = pd.DataFrame([x for x in tups], columns=columns)
print df
label Total extra
0 Pictionary 0.000000 12
1 Chess 4.609929 12
2 Cluedo 8.421986 12
df = df.set_index('label')
#if you need set column name
df.columns.name = 'Values'
print df
Values Total extra
label
Pictionary 0.000000 12
Chess 4.609929 12
Cluedo 8.421986 12
或者,您可以使用解决方案评论的Colonel Beauvel
:
import pandas as pd
columns = ['Total', 'extra']
tups = [(u'Pictionary', 0.0, 12),
(u'Chess', 4.6099290780141837, 12),
(u'Cluedo', 8.4219858156028362, 12)]
df = pd.DataFrame(tups, columns=['label']+columns)
print df
label Total extra
0 Pictionary 0.000000 12
1 Chess 4.609929 12
2 Cluedo 8.421986 12
df = df.set_index('label')
df.columns.name = 'Values'
print df
Values Total extra
label
Pictionary 0.000000 12
Chess 4.609929 12
Cluedo 8.421986 12
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句