Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.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字典(/w值是不同长度的列表)到数据帧_Python_Pandas - Fatal编程技术网

Python字典(/w值是不同长度的列表)到数据帧

Python字典(/w值是不同长度的列表)到数据帧,python,pandas,Python,Pandas,我有一本这样的字典。这些值是不同长度的列表 {'New England': ['connecticut', 'maine', 'massachusetts', 'new hampshire', 'rhode island', 'vermont'], 'Mideast': ['delaware', 'district of columbia', 'maryland', 'new jersey', 'new york', 'pennsylvania'],

我有一本这样的字典。这些值是不同长度的列表

{'New England': ['connecticut',
  'maine',
  'massachusetts',
  'new hampshire',
  'rhode island',
  'vermont'],
 'Mideast': ['delaware',
  'district of columbia',
  'maryland',
  'new jersey',
  'new york',
  'pennsylvania'],
 'Great Lakes': ['illinois', 'indiana', 'michigan', 'ohio', 'wisconsin'],
 'Plains': ['iowa',
  'kansas',
  'minnesota',
  'missouri',
  'nebraska',
  'north dakota',
  'south dakota'],
 'Southeast': ['alabama',
  'arkansas',
  'florida',
  'georgia',
  'kentucky',
  'louisiana',
  'mississippi',
  'north carolina',
  'south carolina',
  'tennessee',
  'virginia',
  'west virginia'],
 'Southwest': ['arizona', 'new mexico', 'oklahoma', 'texas'],
 'Rocky Mountain': ['colorado', 'idaho', 'montana', 'utah', 'wyoming'],
 'Far West': ['alaska',
  'california',
  'hawaii',
  'nevada',
  'oregon',
  'washington']}
我想把它做成一个有两列的熊猫数据框,如下所示

+-------------+--------------+
|region       | state        |
+-------------|--------------+
|New England  | connecticut  |
+-------------|--------------+
|New England  | maine        |
+-------------|--------------+
|New England  | massachusetts|
+-------------|--------------+
|New England  | new hampshire|
+-------------|--------------+
| Mideast     | new york     |
+-------------|--------------+
| Mideast     | new jersey   |
+-------------|--------------+

我怎样才能做到呢

我有一列美国州,我想把它们分类为区域,所以我需要一个数据框架来合并


非常感谢

使用
列表理解
将传递给
DataFrame
构造函数的元组列表的键中列表的值展平:

df = pd.DataFrame([(k, x) for k, v in d.items() for x in v],
                  columns=['region','state'])
print (df.head(10))
        region                 state
0  New England           connecticut
1  New England                 maine
2  New England         massachusetts
3  New England         new hampshire
4  New England          rhode island
5  New England               vermont
6      Mideast              delaware
7      Mideast  district of columbia
8      Mideast              maryland
9      Mideast            new jersey
    
编辑:循环解决方案:

out = []
for k, v in d.items():
    for x in v:
        out.append((k, x))
        
df = pd.DataFrame(out, columns=['region','state'])

完美的谢谢你能把列表理解转换成for循环,这样我就能更好地理解了吗?@tainangao-当然,给我一点时间