如何从含括号逗号分隔值的字典创建带列标签的Pandas DataFrame?
问题解决方法
首先你这里的my_dict根本不是字典,而是连续给变量赋值多个元组,Python会自动把最后一个元组赋值给my_dict,所以实际my_dict只有(113, 'yellow', 'Susy')这一行数据——这就是用pd.DataFrame.from_dict()只得到最后一行的原因。
正确的做法是把这些元组放到一个列表中,再直接创建DataFrame并指定列名:
import pandas as pd # 将所有元组存入列表 data = [ (14, 'red', 'Bob'), (12, 'blue', 'Tom'), (68, 'green', 'Samantha'), (91, 'white', 'Jacob'), (113, 'yellow', 'Susy') ] # 创建DataFrame并指定列标签 df = pd.DataFrame(data, columns=['NUMBER', 'COLOR', 'NAME']) print(df)
运行后会输出你想要的格式:
NUMBER COLOR NAME 0 14 red Bob 1 12 blue Tom 2 68 green Samantha 3 91 white Jacob 4 113 yellow Susy
如果你确实想用字典格式构建数据(以列名为键、列数据为值),也可以这样写:
import pandas as pd my_dict = { 'NUMBER': [14, 12, 68, 91, 113], 'COLOR': ['red', 'blue', 'green', 'white', 'yellow'], 'NAME': ['Bob', 'Tom', 'Samantha', 'Jacob', 'Susy'] } df = pd.DataFrame.from_dict(my_dict) print(df)
这种方式用from_dict也能得到正确结果。
内容的提问来源于stack exchange,提问作者afr100
相关产品推荐
相关产品推荐

