Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python dataframe中包含多个键值的字典_Python_Pandas_Dataframe - Fatal编程技术网

Python dataframe中包含多个键值的字典

Python dataframe中包含多个键值的字典,python,pandas,dataframe,Python,Pandas,Dataframe,字典看起来像: {'iphone': [12, 21666], 'a1': [6, 5859], 'J5': [15, 13862]} 使用此字典,我希望创建如下所示的数据帧: name n1 n2 0 iphone 12 21666 1 a1 6 5859 2 J5 15 13862 将列表理解与DataFrame构造函数一起使用: d = {'iphone': [12, 21666], 'a1': [6, 5859], 'J5':

字典看起来像:

{'iphone': [12, 21666], 'a1': [6, 5859], 'J5': [15, 13862]}
使用此字典,我希望创建如下所示的数据帧:

    name   n1   n2
0  iphone  12   21666
1  a1       6   5859
2  J5      15   13862

将列表理解与
DataFrame
构造函数一起使用:

d = {'iphone': [12, 21666], 'a1': [6, 5859], 'J5': [15, 13862]}

df = pd.DataFrame([([k] + v) for k, v in d.items()], columns=['name','n1','n2'])
#alternative
#df = pd.DataFrame([(k, *v) for k, v in d.items()], columns=['name','n1','n2'])
print (df)
     name  n1     n2
0  iphone  12  21666
1      a1   6   5859
2      J5  15  13862
所有长度列表的通用解决方案,不仅仅是
2

df = pd.DataFrame([(k, *v) for k, v in d.items()])
#python 3.6+ with f-strings
df.columns = ['name'] + [f'n{x}' for x in df.columns[1:]]
#python bellow
#df.columns = ['name'] + ['n{}'.format(x) for x in df.columns[1:]]
print (df)
     name  n1     n2
0  iphone  12  21666
1      a1   6   5859
2      J5  15  13862
或:


将列表理解与
DataFrame
构造函数一起使用:

d = {'iphone': [12, 21666], 'a1': [6, 5859], 'J5': [15, 13862]}

df = pd.DataFrame([([k] + v) for k, v in d.items()], columns=['name','n1','n2'])
#alternative
#df = pd.DataFrame([(k, *v) for k, v in d.items()], columns=['name','n1','n2'])
print (df)
     name  n1     n2
0  iphone  12  21666
1      a1   6   5859
2      J5  15  13862
所有长度列表的通用解决方案,不仅仅是
2

df = pd.DataFrame([(k, *v) for k, v in d.items()])
#python 3.6+ with f-strings
df.columns = ['name'] + [f'n{x}' for x in df.columns[1:]]
#python bellow
#df.columns = ['name'] + ['n{}'.format(x) for x in df.columns[1:]]
print (df)
     name  n1     n2
0  iphone  12  21666
1      a1   6   5859
2      J5  15  13862
或:


如果你的字典名是
d
,你也可以这样做:

df = pd.DataFrame(d).T.reset_index()
df.columns = ['name','n1','n2']

如果你的字典名是
d
,你也可以这样做:

df = pd.DataFrame(d).T.reset_index()
df.columns = ['name','n1','n2']

你可以这样试试

df = pd.DataFrame({'iphone': [12, 21666], 'a1': [6, 5859], 'J5': [15, 13862]})
df.columns = ["name", "n1", "n2"]
print(df)

你可以这样试试

df = pd.DataFrame({'iphone': [12, 21666], 'a1': [6, 5859], 'J5': [15, 13862]})
df.columns = ["name", "n1", "n2"]
print(df)
输出:

     name  n1     n2
0  iphone  12  21666
1      a1   6   5859
2      J5  15  13862
重置索引是必需的步骤,如果没有它,它将以['iphone'、'a1'、'J5']作为索引

输出:

     name  n1     n2
0  iphone  12  21666
1      a1   6   5859
2      J5  15  13862

重置索引是不需要的步骤,它将以['iphone'、'a1'、'J5']作为索引

No,解决方案错误,检查
print(df)
并与预期输出进行比较。No,解决方案错误,检查
print(df)
并与预期输出进行比较。解决方案给了我一个错误:value错误:长度不匹配:预期轴有2个元素,新值有3个元素解决方案给了我一个错误:值错误:长度不匹配:预期轴有2个元素,新值有3个元素使用字典理解的一般解决方案很好,谢谢。使用字典理解的一般解决方案很好,谢谢。