在Python中构建PANDAS数据框架方面获得帮助



我是Python的新手。我有一个项目列表,例如这样:

places = ['Alabama', 'Auburn', 'Jacksonville', 'Arizona', 'Flagstaff', 'Phoenix']

请注意,奥本和杰克逊维尔是阿拉巴马州的城市,而弗拉格斯塔夫和凤凰城是亚利桑那州的城市。

我需要创建一个带有两列['State','City']的熊猫数据框,如下:

    State |    City
  --------|----------
 Alabama  | Auburn
 Alabama  | Jacksonville
 Arizona  | Flagstaff
 Arizona  | Phoenix

我试图创建一个字典,该字典将"状态"作为密钥和"城市"作为相应键的值。但这对我不起作用,因为我的知识现在受到pythoin的限制。

非常感谢。

谢谢

词典中的键必须是唯一的,因此,如果您做了一个状态有多个城市的某些事情,您将覆盖某些值;

In [1]: {'Arizona': 'Flagstaff', 'Arizona': 'Phoenix'}
Out[1]: {'Arizona': 'Phoenix'}

另一方面,如果您知道钥匙是唯一的,则pandas.DataFrame.from_dict可以完成工作。

在您的情况下,您可以将信息作为对列表传递。

In [20]: df = pd.DataFrame([['Arizona', 'Flagstaff'], ['Arizona', 'Phoenix'], ['Alabama', 'Auburn']], columns=['State', 'City'])
In [22]: df
Out[22]: 
     State       City
0  Arizona  Flagstaff
1  Arizona    Phoenix
2  Alabama     Auburn

如果您想摆脱您所传递的冗余信息,包括不止一次,您可以做

之类的事情
In [33]: cities = {'Alabama': ['Auburn', 'Jacksonville'], 'Arizona': ['Flagstaff', 'Phoenix']}
In [34]: pd.DataFrame(((k, c) for (k, v) in cities.items() for c in v), columns=['State', 'City'])
Out[34]: 
     State          City
0  Arizona     Flagstaff
1  Arizona       Phoenix
2  Alabama        Auburn
3  Alabama  Jacksonville

最新更新