将Python列表转换为带索引的数据帧

2024-06-16 08:52:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个很大的python列表,其中包含许多格式的字符串

list = ['state1', 'town1','town2','town3', 'state2', 'town4', 'state3', 'town5','town6']

每个州有不同数量的城镇

如何将其嵌套,使其看起来像:

list = [['state1', 'town1','town2','town3'], ['state2', 'town4'],['state3', 'town5','town6']

然后把这个列表放到一个数据框中,州作为索引,城镇作为一列


Tags: 数据字符串列表数量格式liststate1state2
2条回答

那么,让我们首先来看一些列表示例:

state_lst = ['California', 'New Mexico', 'Arizona', 'etc.']
state_town_lst = ['California', 'San Francisco', 'Los Angeles', 'San Diego', 'New Mexico', 'Albuquerque', 'Santa Fe', 'Arizona', 'Tucson']
town_lst =[]

如你所见,加利福尼亚州应该有三个城市,新墨西哥州两个,亚利桑那州一个。因此,我们通过state_town_lst检查项目是否出现在state_lst

for item in state_town_lst:
    if item in state_lst:
        state = item
        continue
    else:
        town = item
        
    town_item = (state, town)
    town_lst.append(town_item)
    
df = pd.DataFrame(town_lst, columns = ["State", "Town"])

这将为您提供:

    State       Town
0   California  San Francisco
1   California  Los Angeles
2   California  San Diego
3   New Mexico  Albuquerque
4   New Mexico  Santa Fe
5   Arizona     Tucson

让我们把清单看作:

lst = [['state', 'town','town','town'], ['state', 'town'],['state', 'town','town']]

要将其转换为以状态作为索引的数据帧,请执行以下操作:

df=pd.DataFrame(lst).set_index(0, drop=True)

输出:

0        1       2       3
            
state   town    town    town
state   town    None    None
state   town    town    None

相关问题 更多 >